无法将.mat文件读入python

无法将.mat文件读入python,python,hdf5,mat,h5py,Python,Hdf5,Mat,H5py,我已经尝试了好几天,在我的python项目中寻找读取此文件的正确方法。这是一个普通的matlab数据结构文件 我很熟悉如何读取h5文件,这个.mat文件似乎就是这样,因为它不允许scipy.loadmat读取它。所以我使用了h5py.Read() 导入h5py f=h5py.File('./imgIdx.mat',r') d=f['imgIdx/anno'] 打印(d[1000])#访问任意对象 [] 这是一个我无法处理的问题 这应该是一个mx4矩阵 其中m>=0文档中对象引用部分的以下提示

我已经尝试了好几天,在我的python项目中寻找读取此文件的正确方法。这是一个普通的matlab数据结构文件

我很熟悉如何读取h5文件,这个.mat文件似乎就是这样,因为它不允许scipy.loadmat读取它。所以我使用了h5py.Read()

导入h5py
f=h5py.File('./imgIdx.mat',r')
d=f['imgIdx/anno']
打印(d[1000])#访问任意对象
[]
这是一个我无法处理的问题 这应该是一个mx4矩阵
其中m>=0

文档中对象引用部分的以下提示:

[348]中的
d=f['imgIdx/anno']
In[349]:d[1000]
Out[349]:数组([],dtype=object)
在[350]:d[1000]中。项()
出[350]:
[351]中:f[d[1000]。项()
出[351]:
在[352]中:f[d[1000].item()][:]
Out[352]:
数组([[87,447.],
[158., 160.],
[446., 586.],
[325., 283.]])

我还在shell中使用了
h5dump
来查看文件及其内容。

这很准确,切中要害。谢谢,我现在可以通过这样一个简单的例子来理解它,专注于需要什么。
import h5py
f = h5py.File('./imgIdx.mat','r')
d = f['imgIdx/anno']
print(d[1000])     # accessing an arbitrary object

[<HDF5 object reference>]
In [348]: d = f['imgIdx/anno']
In [349]: d[1000]
Out[349]: array([<HDF5 object reference>], dtype=object)
In [350]: d[1000].item()
Out[350]: <HDF5 object reference>
In [351]: f[d[1000].item()]
Out[351]: <HDF5 dataset "N4": shape (4, 2), type "<f8">
In [352]: f[d[1000].item()][:]
Out[352]: 
array([[ 87., 447.],
       [158., 160.],
       [446., 586.],
       [325., 283.]])