【问题标题】:How to batch select and calculate arrays in Numpy?如何在 Numpy 中批量选择和计算数组?
【发布时间】:2012-05-18 14:10:51
【问题描述】:

如何 (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 多个数组,我该如何批处理它们?非常感谢。

【问题讨论】:

  • 您的 HDF 文件的结构是什么?例如,是否所有阵列都挂在根目录下?您是否希望在新文件中复制该结构?

标签: arrays batch-file numpy iteration hdf5


【解决方案1】:

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

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

【讨论】:

    【解决方案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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 2012-01-11
      • 2018-03-31
      • 1970-01-01
      相关资源
      最近更新 更多