Was ist das L in numpy.shape und 32 in numpy.type eines Arrays?

8

Ich probiere die Funktionen von numpy Arrays und unten ist der Code:

%Vor%

Was gab:

%Vor%

Es ist ein Ganzzahl-Array mit 6 Zeilen und 6 Spalten. Aber was ist die 32 von numpy.type und die L in numpy.shape?

    
user3211991 22.01.2014, 13:52
quelle

2 Antworten

14

Die 32 im Array-Typ bezieht sich auf die 32-Bit-Breite des Underlyings Machine Integer, die das Array speichert. Dies bedeutet, dass ein Array mit etwa 1 Million Elementen mindestens 4 Millionen Bytes (32 Millionen Bits) Speicher belegt.

Andererseits hat das Suffix L , das von der Eigenschaft shape zurückgegeben wird, nichts mit den Daten zu tun, die Sie in Ihre Arrays einfügen können, und Sie sollten sich nicht darum kümmern. Wenn Sie sich für die technischen Details interessieren, bezeichnet L den long Python-Typ, der ganze Zahlen unbeschränkter Breite darstellt (nicht zu verwechseln mit dem C-Typ desselben Namens). Es macht wenig Sinn, eine kleine Ganzzahl wie die Zahl 6 als long darzustellen, aber ein Code tut dies aus Konsistenzgründen mit der gleichen API, die eine größere Ganzzahl zurückgibt. Beispielsweise gibt der Aufruf os.stat immer Bytegrößen in langen Ganzzahlen zurück, auch wenn sie dem regulären Typ int entsprechen würden, um die Typinvarianz des Rückgabewerts zu erhalten.

    
user4815162342 22.01.2014 13:57
quelle
1

Auf meinem Rechner gibt es (6, 6) , der L auf Ihren Maschinen markiert es als long integer .

d.

%Vor%     
zhangxaochen 22.01.2014 13:53
quelle

Tags und Links