我有一个二进制数组,我想将它转换成一个整数列表,其中每个 int 是数组的一行。
例如:
from numpy import *
a = array([[1, 1, 0, 0], [0, 1, 0, 0], [0, 1, 1, 1], [1, 1, 1, 1]])
我想将 a
转换为 [12, 4, 7, 15]
。
最佳答案
@SteveTjoa 的回答很好,但为了好玩,这里有一个 NumPy 的单行:
In [19]: a
Out[19]:
array([[1, 1, 0, 0],
[0, 1, 0, 0],
[0, 1, 1, 1],
[1, 1, 1, 1]])
In [20]: a.dot(1 << arange(a.shape[-1] - 1, -1, -1))
Out[20]: array([12, 4, 7, 15])
(arange
是 numpy.arange
。)
如果位的顺序相反,则更改 arange
生成的值的顺序:
In [25]: a.dot(1 << arange(a.shape[-1]))
Out[25]: array([ 3, 2, 14, 15])
关于python - 二进制 numpy 数组到整数列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15505514/