使用以下代码我尝试将数字列表转换为二进制数但出现错误
import numpy as np
lis=np.array([1,2,3,4,5,6,7,8,9])
a=np.binary_repr(lis,width=32)
运行程序后的错误是
回溯(最近一次调用最后一次):
文件“”,第 4 行,位于
a=np.binary_repr(lis,宽度=32)
文件“C:\用户......”,
在binary_repr中
如果数字 == 0:
ValueError:具有多个元素的数组的真值是
模糊的。使用 a.any() 或 a.all()
有任何解决这个问题的方法吗?
您可以使用np.vectorize https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.vectorize.html来克服这个问题。
>>> 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')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)