簡単な質問のはずですが、どこにも答えが見つかりません。Pythonの~
演算子は、ビットごとの反転演算子として文書化されています。罰金。私は統合失調症のように見える行動に気付きました。
~True -> -2
~1 -> -2
~False -> -1
~0 -> -1
~numpy.array([True,False],dtype=int) -> array([-2,-1])
~numpy.array([True,False],dtype=bool) -> array([False,True])
最初の 4 つの例では、Python が (ドキュメントにあるように) を実装していることがわかります。入力はboolean であっても~x = -(x+1)
int として扱われます。したがって、スカラーブール値の場合、は論理否定として扱われません。int 型を使用してブール値で定義された numpy 配列で動作が同じであるというわけではありません。~
~
次に、ブール配列の論理否定演算子として機能するのはなぜですか (注意: ~numpy.isfinite(numpy.inf) -> True
?)?
not()
スカラーで使用しなければならないのは非常に面倒ですがnot()
、配列を否定することはできません。次に、配列の場合は を使用する必要~
がありますが~
、スカラーを否定するには機能しません...