例如,我想创建一个掩码来屏蔽值在 40 到 60 之间的元素:
foo = np.asanyarray(range(100))
mask = (foo < 40).__or__(foo > 60)
看起来很丑。我不会写
(foo < 40) or (foo > 60)
因为我最终得到:
ValueError Traceback (most recent call last)
...
----> 1 (foo < 40) or (foo > 60)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
有没有一种规范的方法可以用好看的代码对 NumPy 数组进行逐元素 bool 运算?
最佳答案
试试这个:
mask = (foo < 40) | (foo > 60)
注意:对象中的 __or__
方法重载按位或运算符 (|
),而不是 bool or
运算符。
关于python - 如何对 NumPy 数组执行逐元素 bool 运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8632033/