我有一个小的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(而不是python)从hdf5文件中读取各个数组元素,以便我可以对这些元素执行某些操作。 This显示了如何扩展numpy数组。如何扩展hdf5?
编辑:语法
答案 0 :(得分:2)
h5py为您提供了一个直接界面,用于读取/写入和操作存储在hdf5文件中的数据。你看过文档了吗?
我建议从这些开始。这些非常清楚的示例说明如何进行简单的数据访问。如果您尝试做的具体事情未被h5py中的方法所涵盖,您能否对您所需的用法进行更具体的描述?
答案 1 :(得分:1)
如果您实际上不需要HDF5的特定结构,但您只需要速度和跨平台兼容性,我建议您查看PyTables。它具有读写Numpy数组的内置功能。</ p>