如何使用H5PY将HDF5文件导出为NumPy格式?

26

我有一个包含三个数组的现有hdf5文件,我想使用h5py提取其中一个数组。

2个回答

56

h5py已经将文件读入为numpy数组,因此只需:

with h5py.File('the_filename', 'r') as f:
    my_array = f['array_name'][()]

[()] 的意思是读取整个数组;如果不这样做,它就不会读取整个数据,而是为您提供对子部分的延迟访问(当数组非常大但您只需要其中一小部分时非常有用)。


非常感谢你,Dougal。我已经修改了代码如下:
f = h5py.File('D:/!JODI/Macau Wind/u_100m/20100101.hdf5', 'r') my_array = f['u'].value f.close()
另一个愚蠢的问题是输出数组在哪个文件中?我在哪里可以找到输出数组?非常感谢。
- l.z.lz
我不确定你所说的输出数组 my_array 是什么意思?除非你自己保存(使用 h5py.File 或类似 numpy.save 的方法),否则对其进行的任何更改都只会存储在内存中。 - Danica
6
为了后代:.value 方法已经不再可用。请使用 f['array_name'][()]代替。 - Danica

0

对于这个问题来说,使用SpacePy包可能有些过头了,但如果你有很多类似的事情要做,它可以让一些操作变得更加容易。

datamodel.fromHDF5()文档。它返回一个类似于h5py处理数据的数组字典。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接