我有一个3Dnumpy数组形式的脑电图数据(epoch * channel * timepoint)。timepoint是一个256个元素的数组,包含每个采样的时间点(总共1秒,256 at )。epoch是一个实验性的试验。
我正在尝试将numpy数组导入Python-MNE (http://martinos.org/mne/stable/mne-python.html)可以理解的形式,但是遇到了一些问题
首先,我不确定应该将这些原始数据导入为RawArray还是EpochsArray。我尝试了后者,如下所示:
ch_names = list containing my 64 eeg channel names
allData = 3d numpy array as described above
info = mne.create_info(ch_names, 256, ch_types='eeg')
event_id = 1
#I got this from a tutorial but really unsure what it does and I think this may be the problem
events = np.array([200, event_id]) #I got this from a tutorial but really unsure what it does and I think this may be the problem
raw = mne.EpochsArray(allData, info, events=events)
picks = mne.pick_types(info, meg=False, eeg=True, misc=False)
raw.plot(picks=picks, show=True, block=True)
当我运行这个命令时,我得到一个索引错误:“数组的索引太多了”
最终,我想对数据进行一些STFT和CSP分析,但现在我需要一些帮助来进行初始重组和导入MNE。
有什么正确的方法可以导入这些数量庞大的数据,从而最容易地完成我想要的分析?
发布于 2015-08-12 09:59:22
有没有办法将从脑电图设置中获得的数据转换为.fif格式?MNE页面在他们的教程中提到的“原始”数据格式是一个.fif格式的文件。如果你能把你的脑电图数据转换成.fif格式,你可以按照教程一步一步来做……
从各种其他脑电图文件格式转换为.fif的函数:http://martinos.org/mne/stable/manual/convert.html
如果这不是一个选择,这里有一些想法:
EpochsArray()
看起来是正确的函数,因为它需要一个形状为(n_epochs,n_channels,n_times)的数据数组。为了确认,检查你的事件数组的形状是否与np.shape(allData)
.EpochsArray()
的帮助页面提到了mne.read_events()
最大的问题是你的事件数据可能存储在哪里,以便你能够读取它...events = mne.find_events(raw, stim_channel='STI 014')
。这让我想知道你的numpy阵列中是否有超过64个通道,其中一个通道实际上是一个刺激通道……如果是这种情况,您可以尝试将该stim通道提供给mne.read_events()
函数。或者,您的stim或events通道可能是单独的数组,也可能是unprocessed?希望这至少对你有所帮助,并祝你好运!
发布于 2021-07-27 23:01:38
如果其他人想知道,他们在他们的文档中添加了一个教程:Creating MNE-Python data structures from scratch。您应该能够找到所需的两个步骤:
https://stackoverflow.com/questions/31954245
复制相似问题