nary运算符在numpy中做什么?

Hoo*_*ked 7 python numpy

我使用Python的numpy看到了一行代码,如下所示:

~array([0,1,2,3,4,5,4,3,2,1,0,-1,-2])
Run Code Online (Sandbox Code Playgroud)

它给出了输出:

array([-1, -2, -3, -4, -5, -6, -5, -4, -3, -2, -1,  0,  1])
Run Code Online (Sandbox Code Playgroud)

一元运算符(〜)是否采用数组并应用A - > - (A + 1)

如果是这样,那么重点是什么?

Bla*_*rad 14

Chris Lutz的评论是正确的.

〜是按位反运算符

看起来它将A变为 - (A + 1),因为在许多现代计算机上,负数表示为相应正整数的二进制补码,其中数减去2^(bit length)(即"两位到位长的幂") ,而不是"两个独家或位长"......).

在这样的系统中,-1将表示为全1.当然,数字的总和也是负数的总和,所以我们有这样的情况

a + ~a = -1        =>
    ~a = -1 - a    =>
    ~a = -(a + 1)
Run Code Online (Sandbox Code Playgroud)

你注意到了