【发布时间】:2012-05-03 16:57:15
【问题描述】:
我有一个包含三个数组的现有 hdf5 文件,我想使用 h5py 提取其中一个数组。
【问题讨论】:
我有一个包含三个数组的现有 hdf5 文件,我想使用 h5py 提取其中一个数组。
【问题讨论】:
h5py 已经将文件读取为 numpy 数组,所以只需:
with h5py.File('the_filename', 'r') as f:
my_array = f['array_name'][()]
[()] 表示读取整个数组;如果你不这样做,它不会读取整个数据,而是让你懒惰地访问子部分(当数组很大但你只需要它的一小部分时非常有用)。
【讨论】:
my_array 从上面?您对其所做的任何更改都只会存储在内存中,除非您自己保存(保存到 h5py.File 或 numpy.save 之类的东西中)。
.value 方法不再有效。请改用f['array_name'][()]。
对于这个问题,这有点矫枉过正,但如果你有很多这样的事情要做,我会使用一个包SpacePy,这会让其中的一些事情变得更容易。
datamodel.fromHDF5() 文档 这将返回一个数组字典,其存储方式与 h5py 处理数据的方式类似。
【讨论】: