作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当矩阵中的两个条件都为 True
时,如何选择元素?在 R 中,基本上可以组合 bool 向量。
所以我的目标是:
A = np.array([2,2,2,2,2])
A < 3 and A > 1 # A < 3 & A > 1 does not work either
评估到:ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
它应该评估为:
array([True,True,True,True,True])
我的解决方法通常是对这些 bool 向量求和并等于 2,但必须有更好的方法。这是什么?
最佳答案
你可以只使用 &
,例如:
x = np.arange(10)
(x<8) & (x>2)
给予
array([False, False, False, True, True, True, True, True, False, False], dtype=bool)
一些细节:
&
是 numpy ufunc bitwise_and
的简写, 这对于 bool
类型与 logical_and
相同.也就是说,这也可以拼写为bitwise_and(less(x,8), greater(x,2))
&
优先级高于 <
和 >
and
不起作用,因为它对 numpy 数组不明确,因此 numpy 抛出异常而不是猜测。关于python - 在 numpy 数组中组合逻辑语句 AND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21996661/
我是一名优秀的程序员,十分优秀!