Numpy按位运算符优先级?

Ven*_*tta 1 python numpy operators bitwise-operators operator-precedence

numpy位运算符&和|的优先级排名是什么??

如果我做

a & b | c
Run Code Online (Sandbox Code Playgroud)

它评估的表达方式是什么?a & (b | c)(a & b) | c

怎么样

a | b & c
Run Code Online (Sandbox Code Playgroud)

我还假设NOT(〜)具有最高优先级?

Joh*_*hin 9

您可以在互联网连接断开时使用此技术.它适用于您可能遇到的许多问题.该技术的口语描述是"吮吸它并看到".

>>> from itertools import product
>>> list(product(range(2), repeat=3))
[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)]
>>> all((a & b | c) == ((a & b) | c) for a, b, c in product(range(2), repeat=3))
True
>>> all((a & b | c) == (a & (b | c)) for a, b, c in product(range(2), repeat=3))
False
Run Code Online (Sandbox Code Playgroud)


Ben*_*min 7

请参阅文档的此部分以及此页面(感谢@FJ).

优先事项是:

  1. 不是(~)
  2. 和(&)
  3. xor(^)
  4. 或(|)

这意味着:

a & b | c == (a & b) | c
a | b & c == a | (b & c)
Run Code Online (Sandbox Code Playgroud)

  • 根据[this](http://docs.python.org/reference/expressions.html#summary),“^”的优先级高于“|”。容易证明,`1 | 2 ^ 3 != (1 | 2) ^ 3`。 (2认同)