我有很多整数。我想以一种有效的方式将其转换为其二进制表示形式的数组。
这是一个示例,其中包含我所寻找的一小部分
array = np.array([1,4,1111],dtype=np.uint16)
want = np.array([[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],
[0,0,0,0,0,1,0,0,0,1,0,1,0,1,1,1]
]
,dtype=np.uint8)
例如,有多种方法可以迭代地完成此操作。 '{:016b}'.format(integer)
,但我需要一种有效的方法,因为我的整数数组包含成千上万个整数,并且此操作在我的代码中反复使用。
换句话说,我要寻找的是函数np.unpackbits
,除了我需要输出位数组的dtype
大于np.uint8
[例如np.uint64
]。
array = np.array([[1],[4],[1111]],dtype=np.uint16)
np.unpackbits(array.view(np.uint8),axis=1)
与'{:016b}'.format(integer)
相比,没有给出正确的结果。
任何想法都值得赞赏!