打开 h5 文件以与 MNE python 一起使用

时间:2021-03-30 08:59:38

标签: hdf5 h5py

我目前正在使用 The Virtual Brain (www.thevirtualbrain.org) 开展一个项目,并模拟了一些 EEG 数据。为了进一步分析,我想在 python 中打开这个模拟时间序列,以便我可以使用 MNE 包对其进行分析。但是,我只能以 h5 格式存储来自 The Virtual Brain 的 EEG 数据,我无法弄清楚如何在 python 中打开该文件,以便我可以使用它来使用 MNE 对其进行分析。

我可以在 Python 中读入 h5 文件并查看其描述:

文件键 数据结构 时间结构

但我不知道如何实际使用这些数据再次将其作为脑电图进行分析。

有人知道如何做到这一点吗?

谢谢!

赛琳

1 个答案:

答案 0 :(得分:0)

“键”是 HDF5 节点(组或数据集)的名称。要精通,您需要了解 HDF5 文件模式。花一些时间在 HDF 组 上查看 HDF5 文档。我推荐这个文档:Introduction to HDF5

根据您上面的输出,您有 2 个数据集:

  1. HDF5 数据集“data”:形状 (512, 2, 63, 1),类型“
  2. HDF5 数据集“时间”:形状(512,),类型“

h5py 以 NumPy 数组的形式检索数据集。 Shape 是数组的 shape 属性,type 是 dtype 属性。 (熟悉 NumPy 也很有帮助。)在这种情况下,所有值都是浮点数。两个数据集都有 512 行,但维度不同。我怀疑 time 数据集包含您的时间值。您必须探索 data 数据集才能了解该数据的组织方式。

这是根据您问题中的详细信息检索数据的伪代码。 data_arrtime_arr 是关联数据集的 NumPy 数组。

with h5py.File('yourfile.h5','r') as h5f:
    data_arr = h5f['data'][:]
    time_arr = h5f['time'][:]

一旦您将数据作为 NumPy 数组,您就可以使用 Python 和 NumPy 操作来处理它。这应该让你开始。尝试一下,看看您可以使用 data_arrtime_arr 做什么。注意:这是 HDF5 和 h5py 的快速概览。这个主题还有很多。

注意我使用了 Python 的上下文管理器 with/as: 而不是简单的 h5py.File() 调用。首选,并为您管理文件关闭操作(无需h5f.close()