我想把二进制数组转换成十进制。有没有类似于这个numpy.binary_repr
的函数可以反过来工作呢?
x = array([ 1., 1., 0., 1., 0., 0., 0., 1., 0.])
我知道我能做到:
int("110100010",2) = 418
但在这里,我需要提取数组的元素并将它们放入字符串中?有没有更简单的方法?如果没有,那么我如何提取数组的元素并从中创建一个字符串呢?
发布于 2018-08-06 04:55:38
您可以使用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
https://stackoverflow.com/questions/51698186
复制相似问题