假设你有一个数组:
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)
应该可以工作,除非您对中间数组的数量有非常强烈的要求。
