python:将整数数组转换为其二进制表示形式的数组

时间:2019-01-11 03:01:06

标签: python python-3.x

我有很多整数。我想以一种有效的方式将其转换为其二进制表示形式的数组。

这是一个示例,其中包含我所寻找的一小部分

    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]。

一个suggested solution

    array = np.array([[1],[4],[1111]],dtype=np.uint16)
    np.unpackbits(array.view(np.uint8),axis=1)
'{:016b}'.format(integer)相比,

没有给出正确的结果。

任何想法都值得赞赏!

0 个答案:

没有答案