用python h5py读取.mat文件中的所有变量

2024-05-28 20:34:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从一个“.mat”v7.3文件中提取所有变量,并将它们转换成NumPy数组。有没有一种通用的方法,最好不需要指定变量名?如何从h5py.文件中获取所有当前变量名,然后检查它们的维度?

例如

 import numpy as np, h5py

 file = h5py.File('data.mat','r')
 for "all variables in mat file"
     ...fill numpy array
 end

Tags: 文件方法importnumpyfordataasnp
1条回答
网友
1楼 · 发布于 2024-05-28 20:34:16

在看到一些注释和H5PY Groups的文档之后,我发现您可以遍历所有H5PY“Items”来获得与每个变量名相关联的值。我举了一个例子。如果它们是获取变量名和值的更好方法,请发布。

注意:示例只提取包含数字数组(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

相关问题 更多 >

    热门问题