我目前正在使用 The Virtual Brain (www.thevirtualbrain.org) 开展一个项目,并模拟了一些 EEG 数据。为了进一步分析,我想在 python 中打开这个模拟时间序列,以便我可以使用 MNE 包对其进行分析。但是,我只能以 h5 格式存储来自 The Virtual Brain 的 EEG 数据,我无法弄清楚如何在 python 中打开该文件,以便我可以使用它来使用 MNE 对其进行分析。
我可以在 Python 中读入 h5 文件并查看其描述:
文件键
但我不知道如何实际使用这些数据再次将其作为脑电图进行分析。
有人知道如何做到这一点吗?
谢谢!
赛琳
答案 0 :(得分:0)
“键”是 HDF5 节点(组或数据集)的名称。要精通,您需要了解 HDF5 文件模式。花一些时间在 HDF 组 上查看 HDF5 文档。我推荐这个文档:Introduction to HDF5。
根据您上面的输出,您有 2 个数据集:
h5py 以 NumPy 数组的形式检索数据集。 Shape 是数组的 shape 属性,type 是 dtype 属性。 (熟悉 NumPy 也很有帮助。)在这种情况下,所有值都是浮点数。两个数据集都有 512 行,但维度不同。我怀疑 time
数据集包含您的时间值。您必须探索 data
数据集才能了解该数据的组织方式。
这是根据您问题中的详细信息检索数据的伪代码。 data_arr
和 time_arr
是关联数据集的 NumPy 数组。
with h5py.File('yourfile.h5','r') as h5f:
data_arr = h5f['data'][:]
time_arr = h5f['time'][:]
一旦您将数据作为 NumPy 数组,您就可以使用 Python 和 NumPy 操作来处理它。这应该让你开始。尝试一下,看看您可以使用 data_arr
和 time_arr
做什么。注意:这是 HDF5 和 h5py 的快速概览。这个主题还有很多。
注意我使用了 Python 的上下文管理器 with/as:
而不是简单的 h5py.File()
调用。首选,并为您管理文件关闭操作(无需h5f.close()
)