# Python-EEG工具库MNE中文教程(1)-MNE中数据结构Raw及其用法简介

## Raw数据结构

Raw对象主要用来存储连续型数据，核心数据为n_channels和times,也包含Info对象。

Raw结构查看：

```# 引入python库
import mne
from mne.datasets import sample
import matplotlib.pyplot as plt

# sample的存放地址
data_path = sample.data_path()
# 该fif文件存放地址
fname = data_path + '/MEG/sample/sample_audvis_raw.fif'

"""

"""

print(raw)

<Raw | sample_audvis_raw.fif, n_channels x n_times : 376 x 166800 (277.7 sec), ~3.6 MB, data not loaded>

`raw.info`

data, times = rawpicks, time_slice

picks:是根据条件挑选出来的索引；

time_slice:时间切片

data,times=raw:

data,times=raw:,:

```"""

# 根据type来选择 那些良好的MEG信号(良好的MEG信号，通过设置exclude="bads") channel,

"""

picks = mne.pick_types(raw.info, meg=True, exclude='bads')
t_idx = raw.time_as_index([10., 20.])
data, times = raw[picks, t_idx[0]:t_idx[1]]
plt.plot(times,data.T)
plt.title("Sample channels")```
```"""
sfreq：采样频率

raw返回所选信道以及时间段内的数据和时间点，

"""
sfreq=raw.info['sfreq']
data,times=raw[:5,int(sfreq*1):int(sfreq*3)]
plt.plot(times,data.T)
plt.title("Sample channels")```
```"""

"""
raw.plot_psd()
plt.show()```
```"""

"""
raw.plot_projs_topomap()
plt.show()```
```"""

"""
raw.plot_psd_topo()
plt.show()```
```"""

"""
raw.plot_sensors()
plt.show()```

## MNE 从头创建Raw对象

V: eeg, eog, seeg, emg, ecg, bio, ecog

T: mag

M: hbo, hbr

Am: dipole

AU: misc

data数据是一个二维数据，形状为(n_channels,n_times)

### 案例1

```import mne
import numpy as np
import matplotlib.pyplot as plt

"""

"""
data = np.random.randn(5, 1000)

"""

"""
info = mne.create_info(
ch_names=['MEG1', 'MEG2', 'EEG1', 'EEG2', 'EOG'],
sfreq=100
)
"""

"""
custom_raw = mne.io.RawArray(data, info)
print(custom_raw)```

raw对象中n_channels=5, n_times=1000

```"""

"""
scalings = {'eeg': 2, 'grad': 2,'eog':2}
custom_raw.plot(n_channels=5,
scalings=scalings,
title='Data from arrays',
show=True, block=True)

plt.show()```

### 案例2

```import numpy as np
import neo

import mne
import matplotlib.pyplot as plt```

```# 创建任意数据
sfreq = 1000  # 采样频率
times = np.arange(0, 10, 0.001)  # Use 10000 samples (10s)

sin = np.sin(times * 10)  # 乘以 10 缩短周期
cos = np.cos(times * 10)
sinX2 = sin * 2
cosX2 = cos * 2

# 数组大小为 4 X 10000.
data = np.array([sin, cos, sinX2, cosX2])

# 定义 channel types and names.
ch_names = ['sin', 'cos', 'sinX2', 'cosX2']```

```"""

"""
info = mne.create_info(ch_names=ch_names,
sfreq=sfreq,
ch_types=ch_types)```

```"""

"""
raw = mne.io.RawArray(data, info)

"""

"""
scalings = {'mag': 2, 'grad':1.7}

raw.plot(n_channels=4, scalings=scalings, title='Data from arrays',
show=True, block=True)

"""

"""
scalings = 'auto'
raw.plot(n_channels=4, scalings=scalings,
title='Auto-scaled Data from arrays',
show=True, block=True)
plt.show()```

0 条评论

• ### MNE中文教程(1)-MNE中数据结构Raw及其用法简介

Raw对象主要用来存储连续型数据，核心数据为n_channels和times,也包含Info对象。

• ### MNE-Python专辑 (2) MNE中数据结构Raw及其用法简介(更新)

Raw对象主要用来存储连续型数据，核心数据为n_channels和times,也包含Info对象。

• ### Python-生成模拟原始脑电数据

在实验中有时需要原始脑电数据来进行模拟实验，但又限于实验条件的不足，需要构造模拟的原始脑电数据。

• ### Python多线程与Socket编程综合案例：素数

2）服务器端程序使用一个线程不停地搜索和判断素数，另一个线程接收网络查询并返回是否素数的结果。

• ### Python json.dumps 中文

需要对外提供一个接口，输出的内容里有中文。结果打开一看，返回的是这么一串东西。

• ### SQLMAP配合PHP中转忽略ssl

主要是我最近，沉迷挖洞（edusrc），然后就顺便的学习到了很多之前没接触过的一些东西，比如各类未授权访问啊，或者是各类信息泄露，最惨的还是当属 Rj45了，自...

• ### python中关于中文报错的解决办法

对于像我这样刚接触python的人来说，很可能在代码中输入中文就会出现报错情况，比如说我写这样一个小代码：

• ### Python|蚂蚁感冒

长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左，有的朝右。每只蚂蚁都只能沿着杆子向前爬，速度是1厘米/秒。当两只蚂蚁碰面时，它们会同时掉头往相反的方向爬...

• ### 机器学习各种熵：从入门到全面掌握

作者： 黄海安 编辑： 陈人和 概述 信息熵是信息论和机器学习中非常重要的概念，应用及其广泛，各种熵之间都存在某些直接或...