5

私のプログラムが大量のデータ配列を作成し、それを numpy の savez ルーチンで保存するとします。ただし、その配列と一緒にいくつかの追加情報も保存したいと思います。例としては、現在のバージョンの git コミット ID や、データを生成するために使用される入力パラメーターが挙げられます。これにより、後でデータを見て、どのように作成したかを正確に知ることができます。

この情報を配列と一緒に npz ファイルに直接保存する方法はありますか、それとも別のファイルを作成する必要がありますか?

4

2 に答える 2

7

一言で言えば、あなたはできます(.npz単なる漬け物です)が、おそらく他のものに切り替える方が良いでしょう。(@JoshAdelが、これを実行したい場合の良い例を投稿したようです.npz。)

HDFは、このようなものにはるかに適しています。

hdfファイルの各グループまたはデータセットは属性を格納できます。

h5pynumpy配列をhdfファイルに保存することをお勧めします。

例として:

import numpy as np
import h5py

somearray = np.random.random(100)

f = h5py.File('test.hdf', 'w')

dataset = f.create_dataset('my_data', data=somearray)

# Store attributes about your dataset using dictionary-like access
dataset.attrs['git id'] = 'yay this is a string'

f.close()
于 2012-06-27T19:01:11.757 に答える
4

次のことができるはずです。

In [2]: a = np.arange(10)

In [3]: b = 'git push'

In [5]: np.savez('file',a=a,b=b)

In [7]: data = np.load('file.npz')

In [8]: data.keys()
Out[8]: ['a', 'b']

In [9]: data['a']
Out[9]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

In [10]: str(data['b'])
Out[10]: 'git push'

したがって、任意の名前付きデータを保存して、辞書のようなオブジェクトを取り出すことができます。おそらく、より柔軟で、あらゆる種類のメタデータのサポートが組み込まれている、使用するのに適した形式は、h5pyまたはpytablesのいずれかを使用するhdf5です。

http://h5py.alfven.org/docs/

http://www.pytables.org/

于 2012-06-27T18:55:52.600 に答える