Skip to main content
 首页 » 编程设计

python之Numpy 数组条件运算掩码

2025年05月04日13telwanggs

假设你有一个数组:

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) 

应该可以工作,除非您对中间数组的数量有非常强烈的要求。