【发布时间】:2019-11-22 14:57:20
【问题描述】:
这是我第一次尝试使用“.mat”文件。我将使用“.mat”文件的数据,但无法打开数组的元素。谁能帮我?由于“*.mat”文件 > 7.3,我不能使用 Scipy.io
import numpy as np
import h5py
f = h5py.File('data.mat')
for i in f.keys():
aa = f[i]
aa=np.array(aa)
print i,':','\n',aa
当我使用 aa=np.array(aa)[0] 时,输出将是 f.key() 的名称,但我需要 f.key() 的元素
【问题讨论】:
-
print f[i]会得到什么? -
@mkrieger1
-
我发现了一个关于 Matlab v7.3 文件的旧 SO 主题:how-to-read-a-v7-3-mat-file-via-h5py 它解释了 Matlab 如何使用“对象引用”将数据保存在复杂结构中。阅读该答案(及其中的链接)以寻求帮助。处理对象并不简单。我在这里回答了关于 SVHN 数据集的类似 SO 主题:what-is-the-difference-between-the-two-ways-of-accessing-the-hdf5-group-in-svhn。它包含解释每个 h5py 调用的分步说明。
-
看起来
f[i]是groups。你需要查看这些组的元素(他们的keys),并继续挖掘直到你得到datasets。datasets可以加载为numpy数组。我建议阅读h5py文档,尤其是关于组和数据集的部分。