首页 > 解决方案 > 如何使用 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-horizo​​n-2020.eu/database/data-sets/001-2019/dataset_description_v1-1.pdf获得

标签: pythonmne-python

解决方案


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

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

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

如何以表格形式获取值?

如果您对数组没问题,您可以通过.get_data()方法获取它(请参阅此处的文档)。如果您更喜欢 pandas 数据框,您可以通过raw.to_data_frame()( docs ) 获得它。

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


推荐阅读