如何将二进制numpy数组转换为十进制?

时间:2018-08-05 20:53:10

标签: python arrays numpy

我想将二进制numpy数组转换为十进制。是否有与此numpy.binary_repr类似的功能,而其功能却相反?

x = array([ 1., 1., 0., 1., 0., 0., 0., 1., 0.])

我知道我可以做到:

int("110100010",2) = 418

但是在这里,我需要提取数组的元素并将其放入字符串中?有更容易的方法吗?如果没有,那么我如何提取数组的元素并从中创建一个字符串?

1 个答案:

答案 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