首页 > 解决方案 > 多个逻辑索引选择numpy数组

问题描述

好吧,如果我们想选择某些值保持不变,并在一个 numpy 数组中将其他值设置为零,我们可以

A = A == 1

如果 A 只有 4 个唯一数字 0,1,2,3。

但是,如果我想选择 N 个不同的值,例如

A = np.where(A==1 or A==2, A)

但这不起作用,并且条件不一定仅适用于 2 个值。我该如何实现这个想法?

标签: pythonnumpy

解决方案


使用多个条件时请注意,请使用bitwise OR运算符 ( |) 并将每个条件括在括号中:

A = np.where((A == 1) | (A == 2), A, 0)

对于此任务,您可以使用numpy.isin

A = np.where(numpy.isin(A, [1, 2]), A, 0)

推荐阅读