python - 如何对 NumPy 数组执行逐元素 bool 运算

标签 python numpy boolean-operations

例如,我想创建一个掩码来屏蔽值在 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/

相关文章:

Jenkins 条件步骤 token 逻辑运算符

python - 画一条几乎直线

python - Pandas 按条件按列值排名

python列表操作修改列表形状

python - 如何检查一个序列是严格单调的还是有一个转折点两边都是严格单调的?

python - 在 numpy 中使用换行建立索引的最佳方法

sql-server - 使用 TSQL 的按位操作,如旋转、选择性位反转

c# - &&= 在 C# 中? ( bool 表达式)

python - Keras 值错误 : I/O operation on closed file

python - 使用所有包创建 anaconda python 环境