“|”之间有什么区别和“或”?

时间:2014-06-03 15:38:56

标签: python python-2.7 numpy

我正在使用numpy:

In [83]: names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])

In [93]: mask = (names == 'Bob') | (names == 'Will')

为什么我不能使用"或"而不是" |"?

当我删除I​​n [93]中的伪装时,为什么会给我错误?

ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()

提前致谢。

1 个答案:

答案 0 :(得分:2)

and是python的 logical-AND 运算符。

|是python的按位OR 运算符(不是按位-AND ,正如您的问题所暗示的那样),numpy覆盖顺序使它成为numpy 元素 - 或者

Numpy无法覆盖andor以元素方式工作,因为andor在python中无法覆盖。因此,在numpy中重写了按位运算符。