2011-01-06 10 views
2

ファイルに配列を保存して、ヘッダにいくつかの追加情報を入れたい。私はnumpyバイナリ '.npy'形式を使用したいと思います。最初に配列部分を探して、余分なヘッダーを持つ.npyファイルを配列形式で読むことはできますか?シークを使用してnumpy .npyファイルに余分なヘッダー情報を追加できますか?

私はこのようなことをしたい。 「n」バイトのヘッダーがある場合:

from tempfile import TemporaryFile 
outfile = TemporaryFile() 
# Write header to first 'n' bytes. 
... 
# Write the array after the header. 
outfile.seek(n) 
x = np.arange(10) 
np.save(outfile, x) 

# Then to read it back in: 
outfile.seek(0) 
# Read the header. 
... 
# Read the array. 
outfile.seek(n) 
y = np.load(outfile) 

答えて

1

確かにメタデータをファイルヘッダーに入れることができます。しかし、それはちょっと複雑ですし、ファイルフォーマットにメタデータのヘッダーが既に存在していない限り(ここではそうであるように見えますが、記述フィールドに.npyを入れておかないといけません)、実際には.npy形式を使用していますが、自分の書式だけを読むことができます。

メタデータを同じファイル名でも.metaで終わるファイルに保存することを検討してください。どちらの

foobar.npy 
foobar.meta 

または

foobar.npy 
foobar.npy.meta 

そのように、あなたは多くのことを扱うファイル形式やファイルを簡素化します。

関連する問題