python - 二进制 numpy 数组到整数列表?

标签 python numpy binary

我有一个二进制数组,我想将它转换成一个整数列表,其中每个 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])

(arangenumpy.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/

相关文章:

c - 使用位操作解码文件

Ruby:将整数转换为 32 位二进制数(或字符串)

python - 如何使用 Django 从数据库(MySQL)中选择 30 个唯一的随机值?

python - 当一个模块被导入两次时会发生什么?

python - 如何在 tensorflow 中加权剪辑?

arrays - 为什么 numpy 乘法不会将 (5,5) 和 (5,23) 数组相乘

python - 带有偏移的 Pandas 头

Python Numpy 数组相等失败

python - Numpy 一维数组 CumSquare 值

math - 数字转换的一般方法?