1

如何(1)批量选择 hdf5 文件下的所有数组,然后(2)对这些数组应用计算,最后(3)在另一个 hdf5 文件中批量创建新数组?

例如:

import numpy
import tables

file = openFile('file1',"r")

array1 = file.root.array1
array1_cal = (array1 <= 1)
newfile.createArray('/','array1_cal',array1_cal)

array2 = file.root.array2
array2_cal = (array2 <= 1)
newfile.createArray('/','array2_cal',array2_cal)

我在一个 hdf5 文件和几个 hdf5 文件下有 100 多个数组,我该如何批处理它们?非常感谢。

4

2 回答 2

2

使用PyTables,您可以使用该walkNodes函数递归地遍历节点。这是一个例子:

# Recursively print all the nodes hanging from '/detector'.
print "Nodes hanging from group '/detector':"
for node in h5file.walkNodes('/detector', classname='EArray'):
    data = node[:]
    // do some calculation 
    // store new array in second file 
于 2012-05-10T09:12:47.593 回答
2

使用h5py,即 HDF5 的 Python 接口。h5py允许您使用传统的 Python 和 NumPy 隐喻来使用 HDF5 文件、组和数据集。

请参阅http://code.google.com/p/h5py/http://alfven.org/wp/hdf5-for-python/

于 2012-05-10T08:12:36.883 回答