脑机接口基础学习04----数据结构Epoch用法简介

昨天出去爬了一天山,回来直接累的趴在床上了,所以就没有学习了。。。。
今天简单学习了一下怎样使用epoch

Epochs对象是一种将连续数据表示为时间段集合的方法,存储在数组(n_events,n_channels,n_times)
创建epoch对象分为以下几步:
1)读取fif文件,创建raw对象
2)创建events对象
3)创建epoch对象

#引入python包
import mne
import os.path as op
import numpy as np
from matplotlib import pyplot as plt

#######创建raw对象

#构造事件数组
data_path=r'E:\脑机接口资料\MNE-sample-data'
#加载包含事件events的听觉数据集
raw=mne.io.read_raw_fif(op.join(data_path,'MEG','sample','sample_audvis_raw.fif'))

输出结果:
在这里插入图片描述

#########创建events对象

#构建事件数组
events=mne.find_events(raw,stim_channel='STI 014')

#显示事件数
print('Number of events:',len(events))

#显示所有唯一的事件编号(第3列)
print('Unique event codes:',np.unique(events[:,2]))

在这里插入图片描述

'''
使用描述性标签指定感兴趣的事件代码
给不同的events一个描述性名称

'''
event_id={'Auditory/Left':1,'Auditory/Right':2}


'''
这里可以用上述提取的事件创建mne.Epochs对象,但该方式构造的epoch是无法使用的,因为数据还未
读入到内存中,可以通过get_data来获取也可以使用preload=True
'''

########创建epoch对象
'''
把原始数据(raw)切分成若干个epoch(事件片段)的集合
把每个提前标准好的event为参照,取tmin到tmax这一段时间作为一个epoch来进行数据处理
取每个event的前0.1秒和后1秒共1.1秒的时间长度作为一个epoch,为后续同类型的event的epoch叠加(average)分析做准备

'''
epochs=mne.Epochs(raw,events,event_id,tmin=-0.1,tmax=1,baseline=(None,0),preload=True)
print(epochs)

在这里插入图片描述

###查看epoch对象
'''
epochs对象类似于mne.io.Raw对象,也具有info属性和event属性
可以通过下面两种方式来查看epoch内的event相关信息

'''
print(epochs.events[:3])
print(epochs.event_id)

'''
也可以通过使用python的列表切片的方式访问epoch对象内的events
也可以通过events的描述性名称直接访问

'''
print(epochs[1:5])
print(epochs['Auditory/Left'])

print(epochs['Right'])

在这里插入图片描述

#####epoch平均叠加
'''
通过调用mne.Epochs.average()方法可返回Evoked对象,average()方法可以通过参数指定需要的信道

'''

ev_left=epochs['Auditory/Left'].average()
ev_right=epochs['Auditory/Right'].average()

f,axs=plt.subplots(3,2,figsize=(10,5))
_=f.suptitle('Left/Right auditory',fontsize=20)
_=ev_left.plot(axes=axs[:,0],show=False,time_unit='s')
_=ev_right.plot(axes=axs[:,1],show=False,time_unit='s')
plt.tight_layout()

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值