如何扩展h5py以便访问hdf5文件中的数据?
我有一个小的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 文件中的数据的工具。你有没有看过它的文档?
我建议你先从这些文档开始。这些文档里有很清晰的例子,教你如何简单地访问数据。如果你有一些具体的需求,而 h5py 的方法没有覆盖到,能不能请你更详细地描述一下你想要做的事情?