【发布时间】:2018-02-11 11:34:15
【问题描述】:
我有一个像这样的布尔型 numpy 数组,
>>> np_arr
array([[1, 1, 1, 1, 0, 0, 1, 1],
[1, 1, 1, 1, 0, 0, 1, 1],
[1, 1, 1, 1, 0, 0, 1, 1],
[1, 1, 1, 1, 0, 0, 1, 1],
[1, 1, 1, 1, 0, 0, 1, 1],
[1, 1, 1, 1, 0, 1, 0, 0],
[1, 1, 1, 1, 0, 1, 0, 0],
[1, 1, 1, 1, 0, 1, 0, 0]])
还有一个像这样的一维数组,
>>> another_arr
array([128, 64, 32, 16, 8, 4, 2, 1])
我想以某种方式做一些 and 或 addition 以仅获取存在 1 的值,例如,
>>> np_arr
array([[128,64,32,8, 0, 0, 2, 1],
[128,64,32,8, 0, 0, 2, 1],
....................
[128,64,32,8, 0,4, 0, 0],
.....................)
然后我可以将它们相加以找到 2D 数组中每个 1D 数组的二进制值.. 或者是一些简单的方法来获取十进制值 numpy 数组作为结果?
【问题讨论】:
-
听起来你在问乘法。
-
您预期输出中的
8s 应该是16s 吗?听起来你想要numpy.packbits。无需相乘和求和。 -
@MateenUlhaq 哈哈哈这太简单了……有时我怎么了:(
标签: python arrays python-3.x numpy