2

我有一个小的 python 程序,它使用 h5py 模块创建一个 hdf5 文件。我想编写一个 python 模块来处理 hdf5 文件中的数据。我怎么能那样做?

更具体地说,我可以将 numpy 数组设置为 PyArrayObject 并使用 PyArg_ParseTuple 读取它们。这样,我可以在编写 python 模块时从 numpy 数组中读取元素。如何读取 hdf5 文件以便我可以访问单个元素?

更新:感谢以下答案。我需要从 C 而不是从 Python 读取 hdf5 文件-我知道该怎么做。例如:

import h5py as t
import numpy as np
f=t.File('\tmp\tmp.h5', 'w')
#this file is 2+GB
ofmat=np.load('offsetmatrix.npy')
f['FileDataset']=ofmat
f.close()

现在我有一个名为 '\tmp\tmp.h5' 的 hdf5 文件。我需要做的是使用 C(而不是 python)从 hdf5 文件中读取单个数组元素,以便我可以对这些元素做一些事情。显示了如何扩展 numpy 数组。如何扩展hdf5?

编辑:语法

4

2 回答 2

2

h5py 为您提供了一个直接接口,用于读取/写入和操作存储在 hdf5 文件中的数据。你看过文档吗?

http://docs.h5py.org/

我建议从这些开始。这些有如何进行简单数据访问的非常清晰的示例。如果您正在尝试做的特定事情没有被 h5py 中的方法所涵盖,您能否更具体地描述您想要的用法?

于 2011-03-22T19:41:42.370 回答
1

如果您实际上不需要 HDF5 的特定结构,但只需要速度和跨平台兼容性,我建议您看一下PyTables。它具有读取和写入 Numpy 数组的内置能力。

于 2011-03-22T20:02:05.027 回答