MNE学习笔记(二):数据结构与容器(下)

时间:2024-05-21 20:33:59

(二)数据结构与容器(下)

一、Evoked数据结构

1、定义:Evoked数据结构主要用于存储多次试验(trials)得到的平均数据(averaged data)。在MNE中evoked对象通常由平均后的epochs数据创建(通过mne.Epochs.average()方法)。

2、数据读取

以下代码从含有现成evoked数据集的文件中读取并创建

data_path = mne.datasets.sample.data_path()
fname = op.join(data_path, 'MEG', 'sample', 'sample_audvis-ave.fif')
evokeds = mne.read_evokeds(fname, baseline=(None, 0), proj=True)

返回的evokeds是一个含有若干evoked实例的列表,因为源文件中存储了多种evoked数据实例。另外,可以通过condition参数来指定要读取的evoked实例种类:

evoked = mne.read_evokeds(fname, condition='Left Auditory')
evoked.apply_baseline((None, 0)).apply_proj()

注:baseline是用来指定取校准值的区间,类型是一个二元组,分别对应区间的左端和右端。若左端不指定,则默认为数据的起始点,若右端不指定,则默认为数据的结尾点。通过计算区间内数据的平均值作为校准值,再将原始数据减去这个值进行数据的校准。

3、数据相关Info参数

Evoked对象的Info属性主要包含以下参数:

print(evoked.info)
print(evoked.times)  # Timepoints of sampling.
print(evoked.nave)  # Number of averaged epochs.
print(evoked.first)  # First time sample.
print(evoked.last)  # Last time sample.
print(evoked.comment)  # Comment on dataset. Usually the condition.
print(evoked.kind)  # Type of data, either average or standard_error.

4、访问Evoked对象数据

可以通过evoked.data来获取Evoked对象所存储的数据,该数据类型为(n_channels, n_times)类型的数组,即每行是一个信道,每列是一个采样点,每个数据代表当前信道在该采样点处若干个epochs的平均值。下图为Evoked数据图像

MNE学习笔记(二):数据结构与容器(下)

可以看到,这幅图和上篇文章最后对Epochs对象进行average操作后得到的结果是一样的(本质都是Evoked类型)。

5、保存Evoked数据

(1)保存单一的Evoked实例到一个文件,使用mne.Evoked.save()方法;

(2)保存多种Evoked实例到同一个文件,使用mne.write_evokeds()方法。

 

未完待续