假设你有一个数组:
a =
[ 0,1,0]
[-1,2,1]
[3,-4,2]
假设你给每样东西加 20
b =
[ 20, 21, 20]
[ 19, 22, 21]
[ 23, 16, 22]
现在假设我想添加结果 b
到原始数组 a
但仅在 a < 0
的情况下即在索引 [0,1]
和 [1,2]
其中 a = -1, -4
分别否则得到值 0。最终导致这样的矩阵:
c =
[ 0, 0, 0]
[ 18, 0, 0]
[ 0, 12, 0]
18 = 19 (from b) + -1 (from a)
12 = 16 (from b) + -4 (from a)
并假设我希望能够将其扩展到任何操作(不仅仅是加 20),这样您就不能只从矩阵 c
中过滤所有小于 20 的值。 .所以我想用矩阵 a
作为矩阵 c 的掩码,将 i, j
归零其中 a[i,j] < 0
.
我很难找到一个简明示例来说明如何使用 python 在 numpy 中执行此操作。我希望您能指导我正确实现这种方法。
我努力得到的是将其放入掩码中并仅对保留值执行操作,最终导致 c
.
提前感谢您的帮助。
大概是这样的:
(a + b)*(a<0)
应该可以工作,除非您对中间数组的数量有非常强烈的要求。
我是一名优秀的程序员,十分优秀!