我想将二进制numpy数组转换为十进制。是否有与此numpy.binary_repr
类似的功能,而其功能却相反?
x = array([ 1., 1., 0., 1., 0., 0., 0., 1., 0.])
我知道我可以做到:
int("110100010",2) = 418
但是在这里,我需要提取数组的元素并将其放入字符串中?有更容易的方法吗?如果没有,那么我如何提取数组的元素并从中创建一个字符串?
答案 0 :(得分:-1)
您可以使用reduce
>>> from functools import reduce
>>> reduce(lambda a,b: 2*a+b, x)
418.0
或者,如您所说,您可以构造一个字符串,然后将其转换为int(以2为底)
>>> int(''.join(map(lambda x: str(int(x)), x)), 2)
418