【发布时间】:2016-07-08 09:29:01
【问题描述】:
我正在尝试使用 python 2.7 将整数数组转换为二进制数组。
我的代码的简化版本如下:
#!/usr/bin/python
import numpy as np
a=np.array([6,1,5,0,2])
b=np.array(np.zeros((5)))
for i in range(10):
b[i]=bin(int(a[i])).zfill(8)
代码给了我错误信息:
b[i]=bin(int(a[i])).zfill(8)
ValueError: invalid literal for float(): 0000b110
我的代码有什么问题? 还有另一种方法可以做到这一点吗? 原始代码是一个更大的二维数组项目的一部分。
p.s 我是 Python 的新手
【问题讨论】:
-
ValueError 来自于您创建了一个意外的怪物。 bin(6) 是
'0b110',您需要在用0 填充之前去掉0b部分。错误消息从字面上指出0000b110有问题。另外,为什么你的数组大小为 5 而你却是for i in range(10):? -
感谢大家的快速回复!
-
数组 (10) 的大小被意外设置。在原始代码中是正确的。