numpy.where中的多个条件

5 投票
1 回答
31901 浏览
提问于 2025-04-17 18:52

我有一个numpy数组a,我想做的是

indices = np.where((a < 4) or (a > 12))

这样做是不行的。它只会返回“一个包含多个元素的数组的真值是模糊的。请使用a.any()或a.all()”。但是这个表达式并不模糊,而anyall也不能实现我想要的功能。(anyall也不能处理复合表达式。但if可以。真让人困惑……)

1 个回答

12

你想要一个逻辑数组(也就是布尔数组)作为where的参数。

你可以用x | y或者np.logical_or(x,y)来实现,其中xy分别是a < 4a > 12

撰写回答