Was macht der unäre Operator in numpy?

7

Ich stieß auf eine Codezeile mit Pythons numpy, die so aussah:

%Vor%

Und es gab die Ausgabe:

%Vor%

Nimmt der unäre Operator (~) ein Array und wendet A - & gt; - (A + 1)

Wenn ja, was ist der Punkt?

    
Hooked 06.08.2010, 21:43
quelle

4 Antworten

14

Chris Lutz 'Kommentar ist korrekt.

~ ist der bitweise Negationsoperator

Es sieht so aus, als ob A zu - (A + 1) wird, weil auf vielen modernen Computern negative Zahlen als dargestellt werden Two's Complement der entsprechenden positiven Ganzzahl, wobei die Zahl von 2^(bit length) subtrahiert wird (das ist "zwei zur Potenz der Bitlänge", nicht "zwei exklusive oder Bitlänge" ...).

In einem solchen System würde -1 als alle Einsen dargestellt. Natürlich wäre das auch die Summe einer Zahl und deren bitweises Negativ, also haben wir die Situation wo

%Vor%

wie Sie bemerkt haben.

    
Blair Conrad 06.08.2010, 21:49
quelle
4

Ссылка

Der Grund, warum Sie mit negativen Zahlen enden, ist, wie sie in binärer Form dargestellt werden:

Ссылка

    
relet 06.08.2010 21:48
quelle
2

Der ~ ist der Komplementär -Operator und wenn Sie ihn mit ints verwenden kann in jedem Python-Programm verwendet werden (es ist nicht ausschließlich von numpy)

    
Ed. 06.08.2010 21:53
quelle
0

Der Punkt ist, das Komplement der vales in einem Array aufnehmen zu können. Im Fall von numpy scheint es eine Abkürzung für Folgendes zu sein:

%Vor%     
Noah Watkins 06.08.2010 21:49
quelle

Tags und Links