我尝试使用h5py打开由另一个程序创建的文件。不幸的是我不知道文件的内部结构。我所知道的是它应该包含一个20x20矩阵,我想用numpy处理它。 以下是我到目前为止所做的事情:
import numpy
import h5py
f = h5py.File('example.hdf5')
print(f.keys())
结果如下:
KeysViewWithLock(<HDF5 file "example.hdf5" (mode r+)>)
我怎么离开这里?我想以单个numpy.ndarray的形式访问矩阵。 h5py文档总是讨论创建hdf5文件,而不是读取未知文件。 非常感谢。
解决方案(感谢akash karothiya)
请改用print(list(f.keys()))
。这给出了组/数据集的名称,然后可以将其作为a=f['dataset']
进行访问。
答案 0 :(得分:0)
好的,如前所述,akash karothiya帮我找到了解决方案。
而不是print(f.keys())
使用print(list(f.keys()))
。这将返回['dataset']
。
使用这些信息,我可以获得一个h5py数据集对象,然后我将其转换为numpy数组,如下所示:
a = f['dataset']
b = numpy.zeros(np.shape(a), dtype=complex)
for i in range(numpy.size(a,0)):
b[i,:] = np.asarray(a[i]['real'] + 1j*a[i]['imag'], dtype=complex)