使用numpy. 数字或替代数组上的binary_repr - Python

Zew*_*ewo 5 python binary numpy

使用以下代码我尝试将数字列表转换为二进制数但出现错误

import numpy as np

lis=np.array([1,2,3,4,5,6,7,8,9])
a=np.binary_repr(lis,width=32)
Run Code Online (Sandbox Code Playgroud)

运行程序后的错误是

回溯(最近一次调用最后一次):

文件“”,第 4 行,在 a=np.binary_repr(lis,width=32) 中

文件“C:\Users.......”,在 binary_repr 中,如果 num == 0:

ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

有任何解决这个问题的方法吗?

tar*_*ras 4

您可以使用它np.vectorize来克服这个问题。

>>> lis=np.array([1,2,3,4,5,6,7,8,9])
>>> a=np.binary_repr(lis,width=32)
>>> binary_repr_vec = np.vectorize(np.binary_repr)
>>> binary_repr_vec(lis, width=32)
array(['00000000000000000000000000000001',
       '00000000000000000000000000000010',
       '00000000000000000000000000000011',
       '00000000000000000000000000000100',
       '00000000000000000000000000000101',
       '00000000000000000000000000000110',
       '00000000000000000000000000000111',
       '00000000000000000000000000001000',
       '00000000000000000000000000001001'], dtype='<U32')
Run Code Online (Sandbox Code Playgroud)