使用 python h5py 读取 .mat 文件中的所有变量
Reading ALL variables in a .mat file with python h5py
我正在尝试从“.mat”v7.3 文件中提取所有变量,并将它们转换为 NumPy 数组。有没有一种方法可以通用地执行此操作,最好不需要指定变量名?如何从 h5py.File 中获取所有存在的变量名,然后检查它们的维度?
例如。
import numpy as np, h5py
file = h5py.File('data.mat','r')
for "all variables in mat file"
...fill numpy array
end
在看到一些评论和 H5PY Groups 的文档后,我发现您可以遍历所有 H5PY "Items" 以获取与每个变量名称关联的值。我在下面举了一个例子。如果他们是获取变量名称和值的更好方法,请 post。
注意:该示例仅提取包含数值数组 (h5py.Dataset) 的变量的值。如果您有嵌套组或元胞数组,则需要进一步访问它们以获取值。
import numpy as np
import h5py
f = h5py.File('simdata_020_01.mat','r')
variables = f.items()
for var in variables:
name = var[0]
data = var[1]
print "Name ", name # Name
if type(data) is h5py.Dataset:
# If DataSet pull the associated Data
# If not a dataset, you may need to access the element sub-items
value = data.value
print "Value", value # NumPy Array / Value
我正在尝试从“.mat”v7.3 文件中提取所有变量,并将它们转换为 NumPy 数组。有没有一种方法可以通用地执行此操作,最好不需要指定变量名?如何从 h5py.File 中获取所有存在的变量名,然后检查它们的维度?
例如。
import numpy as np, h5py
file = h5py.File('data.mat','r')
for "all variables in mat file"
...fill numpy array
end
在看到一些评论和 H5PY Groups 的文档后,我发现您可以遍历所有 H5PY "Items" 以获取与每个变量名称关联的值。我在下面举了一个例子。如果他们是获取变量名称和值的更好方法,请 post。
注意:该示例仅提取包含数值数组 (h5py.Dataset) 的变量的值。如果您有嵌套组或元胞数组,则需要进一步访问它们以获取值。
import numpy as np
import h5py
f = h5py.File('simdata_020_01.mat','r')
variables = f.items()
for var in variables:
name = var[0]
data = var[1]
print "Name ", name # Name
if type(data) is h5py.Dataset:
# If DataSet pull the associated Data
# If not a dataset, you may need to access the element sub-items
value = data.value
print "Value", value # NumPy Array / Value