2012-05-10 19 views
1

どのように(1)hdf5ファイルの下ですべての配列を選択し、(2)それらの配列に対して計算を適用し、最後に(3)別のhdf5ファイルで新しい配列をバッチ作成するか?例えばNumpyで配列を選択して計算する方法は?

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) 

は、私がどのようにIバッチ処理化でき、100の+シングルHDF5ファイルの下に配列し、いくつかのHDF5ファイルを持っていますか?どうもありがとう。

+0

あなたのHDFファイルの構造は何ですか?たとえば、すべての配列がルートからぶら下がっていますか?その構造を新しいファイルに複製しますか? – dtlussier

答えて

2

を参照してください。ここに例があります:

# 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 
2

h5py(HDF5へのPythonインターフェイス)を使用します。 h5pyでは、従来のPythonとNumPyのメタファを使用して、HDF5ファイル、グループ、およびデータセットを使用できます。

あなたは再帰的にノードを反復処理するwalkNodes機能を使用することができますPyTableshttp://code.google.com/p/h5py/http://alfven.org/wp/hdf5-for-python/

関連する問題