Skip to main content
 首页 » 编程设计

python之比较 2 个 numpy 数组

2025年05月04日27jackei

我有 2 个 numpy 数组,我希望每当元素 B 为 1 时,A 中的元素等于 0。两个数组始终处于同一维度:

A = [1, 2, 3, 4, 5] 
B = [0, 0, 0, 1, 0] 

我尝试进行 numpy 切片,但仍然无法正常工作。

B[A==1]=0 

如何在不执行常规循环的情况下在 numpy 中实现此目的?

请您参考如下方法:

首先,您需要它们是 numpy 数组而不是列表。然后,您只需反转 B 和 A。

import numpy as np 
A = np.array([1, 2, 3, 4, 5]) 
B = np.array([0, 0, 0, 1, 0]) 
A[B==1]=0 ## array([1, 2, 3, 0, 5]) 

如果你改用列表,这就是你得到的

A = [1, 2, 3, 4, 5] 
B = [0, 0, 0, 1, 0] 
A[B==1]=0 ## [0, 2, 3, 4, 5] 

那是因为 B == 1 是 False 或 0(而不是数组)。所以你基本上写 A[0] = 0