Iは、データがそうように16ビットの整数ブロックに編成されたバイナリファイルを有する:読み出しバイナリデータ
- ビット15:デジタルビットを1
- ビット14:デジタルビット2
- ビット13から0:14ビット符号付き整数
I 3つのアレイにファイルからデータを抽出する方法が見出さ唯一の方法である:
data = np.fromfile("test1.bin", dtype=np.uint16)
digbit1 = data >= 2**15
data = np.array([x - 2**15 if x >= 2**15 else x for x in data], dtype=np.uint16)
digbit2 = data >= 2**14
data = np.array([x-2**14 if x >= 2**14 else x for x in data])
data = np.array([x-2**14 if x >= 2**13 else x for x in data], dtype=np.int16)
元のデータよりもforループで同じことをして3つの別々の配列に書き込むことができることは分かっていますが、これはまだ醜いでしょう。私が知りたいのはdtype=[('db', [('1', bit), ('2', bit)]), ('temp', 14bit-signed-int)])
のスタイルでこれをより効率的に行う方法です。data['db']['1'] = array of ones and zeros
のように簡単にアクセスできます。
「pack」について聞いたことがあります。私はnumpyがバイナリファイルと関係があるかどうか実際には分かりません。 –
もっと援助方法であなたのコメントを表現できますか?バイナリファイル自体とはあまり関係がないかもしれませんが、そこには本当に便利なコンテンツがあります。私の場合は少なくとも。 – TheoryX