如何使用 Python 读取 .gdf 文件

问题描述

我正在为我的大学项目处理存储在“.gdf”文件中的 EEG 信号数据。我的目标是使用 Python 打开该文件。到目前为止,我可以使用 MNE 包打开该文件代码是:

import os
import numpy as np
import mne
raw=mne.io.read_raw_gdf('1.gdf')
print(raw.info)

结果,我得到:

Extracting EDF parameters from C:\Users\Gamer\Desktop\1.gdf...
GDF file detected
Setting channel info structure...
Creating raw.info structure...
<Info | 7 non-empty values
 bads: []
 ch_names: AFz,F3,F1,Fz,F2,F4,FFC5h,FFC3h,FFC1h,FFC2h,FFC4h,...
 chs: 64 EEG
 custom_ref_applied: False
 highpass: 0.0 Hz
 lowpass: 128.0 Hz
 meas_date: 2017-04-04 12:50:01 UTC
 nchan: 64
 projs: []
 sfreq: 256.0 Hz
>

现在,我的问题是:

  1. 如何以表格形式获取值?
  2. 如何使用 Python 知道数据集的维度?
  3. 有什么方法可以将 .gdf 文件转换为 .csv 文件或任何其他格式(如 Pandas 数据框)?

数据集描述位于 http://bnci-horizon-2020.eu/database/data-sets/001-2019/dataset_description_v1-1.pdf

解决方法

欢迎使用堆栈溢出和 mne-python! :)

如何使用 Python 知道数据集的维度?

如果您尝试打印您已阅读的原始文件(而不仅仅是其 info 属性),您应该能够看到尺寸。原始文件总是存储在 mne python channels-first 中,因此数据数组的维度是 channels x samples

如何以表格形式获取值?

如果您对数组没问题,则可以通过 .get_data() 方法 (see the docs here) 获取它。如果您更喜欢 Pandas 数据框,您可以通过 raw.to_data_frame() (docs) 获得它。

但在获取数据数组/表之前,您可能需要执行过滤(例如 raw.filter(1,None))、注释坏数据段(tutorial)、插入坏通道(tutorial)和执行 ICA (tutorial)。一般来说,您尝试进行的分析很可能是在 mne 中实现的,或者使用 mne 对象更容易执行。
确保在 mne 文档中看到许多丰富的 tutorialsexamples。 如果您有任何其他问题,我们现在使用 Discourse:https://mne.discourse.group/

,

raw= mne.io.read_raw_gdf("A01T.gdf")
X,t=raw.get_data(return_times=True
X.shape