【问题标题】:how to export HDF5 file to NumPy using H5PY?如何使用 H5PY 将 HDF5 文件导出到 NumPy?
【发布时间】:2012-05-03 16:57:15
【问题描述】:

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

【问题讨论】:

    标签: python numpy hdf5 h5py


    【解决方案1】:

    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() 另一个愚蠢的问题是输出的数组在文件中吗?我在哪里可以找到输出数组?非常感谢
    • 我不确定你所说的输出数组是什么意思:my_array 从上面?您对其所做的任何更改都只会存储在内存中,除非您自己保存(保存到 h5py.Filenumpy.save 之类的东西中)。
    • 对于后代:.value 方法不再有效。请改用f['array_name'][()]
    【解决方案2】:

    对于这个问题,这有点矫枉过正,但如果你有很多这样的事情要做,我会使用一个包SpacePy,这会让其中的一些事情变得更容易。

    datamodel.fromHDF5() 文档 这将返回一个数组字典,其存储方式与 h5py 处理数据的方式类似。

    【讨论】:

      猜你喜欢
      • 2018-01-02
      • 2015-09-17
      • 2021-08-05
      • 2015-11-18
      • 2015-06-25
      • 2016-07-16
      • 2012-01-19
      • 2016-04-08
      • 2020-08-19
      相关资源
      最近更新 更多