我尝试在numpy中使用布尔索引来创建一个对应于数组中某些值存在的布尔数组
我做的最明显的尝试是:
x = np.array([1, 2, 3, 2, 5, 3, 1, 2, 3, 4, 5])
xBool = x == 2
xBool2 = x == 3
xBool3 = x == 5
x[xBool] = 0
x[xBool2] = 0
x[xBool3] = 0
print(x)
--输出--
>>>
[1 0 0 0 0 0 1 0 0 4 0]
这是我想要的,但正如您从代码中看到的,它需要为每个匹配单独的行。对于3次以上的比较,这可能会非常长
然后我尝试了以下方法:
y = np.array([1, 2, 3, 2, 5, 3, 1, 2, 3, 4, 5])
yBool = y in (2, 3, 5)
y[yBool] = 0
print(y)
但是我有个错误说:
ValueError: The truth value of an array with more than one element is ambiguous.
Use a.any() or a.all()
我不确定如何快速进行多重比较,而不是使用单独的布尔数组。有没有一种OR
可以用于布尔索引
目前没有回答
相关问题 更多 >
编程相关推荐