2千万の32ビットと64ビットの整数を対応するビット配列に変換する方法が必要です(これはメモリ/時間効率が必要です)。 question/answerここからのアドバイスの下で、私はnumpy.unpackbits
を使ってこれをしようとしています。私はなく、途中で、1
要素が最後の一つであることが期待される整数をビットの配列に変換するためにnumpyを使用する
array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=uint8)
:
np.unpackbits(np.array([1], dtype=np.uint64).view(np.uint8))
を生成します。この方法を試している間、私は、予期しない結果に走りました。だから私は明らかにバイトオーダーを保つ何かが欠けている。私は何が欠けていますか?
私はドキュメントがこれを証明する表示されませんでしたが、私はタイプint64型の配列を作成するときに、私が想定し、データのサイズを小さくすると、すべての要素が長時間キャストされます。私。これはCでのキャストと等価で、高位ビットを '0 'で埋め込むべきです。 –
2,000万人!しかし、私は手を編集しないことを願っていますO_o – linusg
[この回答](http://stackoverflow.com/a/18296281/8747)あなたが[このリンク](http://docs.scipy.org/doc/numpy/user /basics.byteswapping.html)。 –