如何扩展h5py以便访问hdf5文件中的数据?

2 投票
2 回答
3002 浏览
提问于 2025-04-16 14:13

我有一个小的Python程序,它使用h5py模块创建一个hdf5文件。我想写一个Python模块来处理这个hdf5文件里的数据。我该怎么做呢?

更具体一点,我可以把numpy数组设置为PyArrayObject,并通过PyArg_ParseTuple来读取它们。这样,在写Python模块的时候,我就可以从numpy数组中读取元素。那么,如何读取hdf5文件,以便我可以访问单个元素呢?

更新:感谢下面的回答。我需要从C语言读取hdf5文件,而不是从Python读取——我知道怎么做。例如:

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语言读取这个hdf5文件中的单个数组元素(而不是用Python),这样我就可以对这些元素进行处理。这个链接展示了如何扩展numpy数组。那么,如何扩展hdf5呢?

编辑:语法

2 个回答

1

如果你并不需要HDF5的特定结构,而只是想要快速和跨平台的兼容性,我建议你看看PyTables。它可以直接读取和写入Numpy数组,非常方便。

2

h5py 是一个可以直接用来读取、写入和处理存储在 hdf5 文件中的数据的工具。你有没有看过它的文档?

http://docs.h5py.org/

我建议你先从这些文档开始。这些文档里有很清晰的例子,教你如何简单地访问数据。如果你有一些具体的需求,而 h5py 的方法没有覆盖到,能不能请你更详细地描述一下你想要做的事情?

撰写回答