怎么将npz格式的数据转化为MNE中的Raw类型的数据,并利用pickle进行保存和读取

在这里插入代码片
# 本脚本的主要功能是将npz格式的数据转化为MNE中的Raw类型的数据, 以及保存方法和读取方法
import pickle
import numpy as np
from scipy.io import savemat
import mne
import matplotlib.pyplot as plt


input_path = r"E:\华意的相关资料\00-医院的数据\一些测试的数据\陈子莹发的\3min睁闭眼_EEG.npz"
save_path = r"E:\华意的相关资料\00-医院的数据\一些测试的数据\陈子莹发的\3min睁闭眼_EEG.pkl"
data = np.load(input_path)

rawdata = data['eeg_raw_data']
ch_names = data['channel_names']
ch_names = ch_names.tolist()
fs = 250


# 进行数据转换,将数据从三维矩阵转变成二维矩阵(通道数,时间样本点数)
single_data = rawdata[0, :, :]
new_data = np.zeros([single_data.shape[0], 10])
for i in range(rawdata.shape[0]):
    print(i)
    single_data = rawdata[i, :, :]
    new_data = np.concatenate([new_data, single_data], axis=1)
new_data = new_data[:, 10:]

# 构建info
ch_types = ['eeg'] * np.size(ch_names)
info = mne.create_info(ch_names=ch_names, ch_types=ch_types, sfreq=fs)
# 加载标准的10-20电极位置信息
montage = mne.channels.make_standard_montage('standard_1020')
info.set_montage(montage)

# 创建MNE的Raw对象
Raw = mne.io.RawArray(new_data, info)
print(Raw.info)
print('\n转换完成~~~')


# 将Raw数据进行保存,也可以不保存直接使用
savefile = open("save_path", "wb")
pickle.dump(Raw, savefile, -1)
savefile.close()
print('一共采集了', np.array(new_data).shape[1]/250/60, '分钟')
print('一共采集了', np.size(ch_names), '通道,采集的通道名称为:', ch_names)
print('\n保存完成~~~')




'''
读取.pkl格式的方法
'''
# f = open('save_path', 'rb')
# #使用load的方法将数据从pkl文件中读取出来
# data = pickle.load(f)
# #关闭文件
# f.close()
# print(data.info)
# data.plot()
# plt.show()








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值