[英]using numpy to convert an int to an array of bits
我需要一種方法將 2000 萬個 32 位和 64 位整數轉換為相應的位數組(因此這必須具有內存/時間效率)。 根據 SO 上不同問題/答案的建議,我試圖通過使用numpy.unpackbits
來做到這numpy.unpackbits
。 在嘗試這種方法時,我遇到了意想不到的結果:
np.unpackbits(np.array([1], dtype=np.uint64).view(np.uint8))
產生:
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)
我希望1
元素是最后一個,而不是中間。 所以我顯然錯過了保留字節順序的東西。 我錯過了什么?
嘗試: dtype='>i8'
,像這樣:
In [6]: np.unpackbits(np.array([1], dtype='>i8').view(np.uint8))
Out[6]:
array([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, 0, 0, 0, 0, 0, 0, 0, 1], dtype=uint8)
參考:
http://docs.scipy.org/doc/numpy/user/basics.byteswapping.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.