Python MNE - 配列からEEGデータを読み込む

私は3D numpy配列(エポック*チャンネル*タイムポイント)の形で提供される脳波データを持っています。 timepointは、サンプリングされた各タイムポイント(合計1秒、256Hz)を含む256要素の配列です。エポックは実験的な試験です。

私は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へのインポートにいくつかの助けを必要としています。

私の意図した分析を簡単に完了できるように、この数値データをインポートする正しい方法は何ですか?

0

1 答え

mne.EpochsArray is for 3-D data (epochs * channels * times). mne.RawArray is for 2-D data. Use EpochsArray.

events is an n * 3 integer array. The 3 columns are: time (in sampling points), length (you can put a dummy here - it is almost never checked - but you still need 3 columns), value (e.g. condition). You fed it a 1 * 2 array.

それを試してみてください:

import numpy as np
from mne import create_info, EpochsArray
n_epochs = 100
channels = ["a", "b", "c", "d"]
n_channels = len(channels)
events = np.array([np.arange(n_epochs), np.ones(n_epochs), np.ones(n_epochs)]).T.astype(int)
d = np.random.random((n_epochs, n_channels, 256))

info = create_info(channels, 256, "eeg")
epochs = EpochsArray(d, info, events)

epochs.plot(show=True, block=True)
0
追加された