データの配列を含む bz2 圧縮バイナリ (ビッグ エンディアン) ファイルがあります。外部ツールで圧縮解除し、ファイルを Numpy に読み込むと、次のように機能します。
import numpy as np
dim = 3
rows = 1000
cols = 2000
mydata = np.fromfile('myfile.bin').reshape(dim,rows,cols)
ただし、このようなファイルは他にもたくさんあるため、事前に個別に抽出することはできません。したがって、Python で bz2 モジュールを見つけたので、Python で直接解凍できる可能性があります。ただし、次のエラー メッセージが表示されます。
dfile = bz2.BZ2File('myfile.bz2').read()
mydata = np.fromfile(dfile).reshape(dim,rows,cols)
>>IOError: first argument must be an open file
明らかに、BZ2File 関数はファイル オブジェクトを返しません。圧縮ファイルを読む正しい方法を知っていますか?