はどうすれば自動的にnumpyの中でファイル名や配列名を昇順に処理することができ、各HDFファイル内のいくつかの(HDF5)ファイルと複数のノード:処理(反復処理)
:私は名前のHDF5ファイルのシリーズを持っています
20120101.hdf5, 20120102.hdf5, 20120103.hdf5, ..., 20120130.hdf5, 20120131.hdf5
HDF5ファイルのそれぞれは、複数のアレイの命名が含まれています
array1, array2, array3, ..., array24
が、私は別々の配列のそれぞれを変更し、新しいHDF5ファイルを対応する作成したいです。例えば、20120101.hdf5
を使用して:
import numpy
import tables
file = openFile("20120101.hdf5","r")
b1 = file.root.array1
c1 = (b1<=1)
new20120101_array1 = creatArray('/','1',c1)
c2 = ((b1<=2) and (b>1))
new20120101_array1 = creatArray('/','2',c2)
.
.
.
c20 = ((b1<=20) and (b>19))
new20120101_array1 = creatArray('/','20',c20)
および配列2-24のためにそれを繰り返します。あなたがディレクトリに複数のファイルを持っている場合は、ディレクトリ内のエントリの名前を含むリストを返すos.listdir
機能を使用することができます
new20120101.hdf5 ---- new20120101_array1 ---- 1
2
...
20
---- new20120101_array2 ---- 1
...
20
...
---- new20120101_array24 --- 1
...
20
new20120102.hdf5
....
new20120131.hdf5
質問は正確には何ですか? – user545424
自動的に行うには?手動で名前を変更する代わりに? –
あなたのコードが正しく書かれていない: 'import tables'を実行すると、このモジュールのすべての関数を' tables.function'と書く必要があります。 'file = openFile(...)'と 'new = creatArray(...)'を書くと、うまく動作しません!あなたが書いたときにコードを使用するには、モジュールを 'from tables import openFile、creatArray'または' from tables import * 'として呼び出す必要があります。 – carla