我正在使用numpy:
In [83]: names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
In [93]: mask = (names == 'Bob') | (names == 'Will')
为什么我不能使用"或"而不是" |"?
当我删除In [93]中的伪装时,为什么会给我错误?
ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()
提前致谢。
答案 0 :(得分:2)
and
是python的 logical-AND 运算符。
|
是python的按位OR 运算符(不是按位-AND ,正如您的问题所暗示的那样),numpy覆盖顺序使它成为numpy 元素 - 或者。
Numpy无法覆盖and
或or
以元素方式工作,因为and
和or
在python中无法覆盖。因此,在numpy中重写了按位运算符。