[Python] Grund für den Typ "int32" in Numpy (Windows-Umgebung) (Stand September 2020)

Ich war neugierig, als ich Numpy studierte. Erstellen Sie beispielsweise ein Array von Numpy wie unten gezeigt und überprüfen Sie den Datentyp mit "dtype". Dann wird "int32" wie folgt zurückgegeben.

image.png

Ich habe mich hier gefragt.

"Warum ist die Standardeinstellung int32 (32bit)? </ Font>

■ Hängt es von der Anzahl der Bits in der Betriebssystemumgebung ab? ⇒ NEIN

Zuerst habe ich mich gefragt, ob es von der Anzahl der Bits im Betriebssystem abhängt. Meine Umgebung ist jedoch wie folgt 64-Bit. Dies hängt nicht von der Anzahl der Bits in der Betriebssystemumgebung ab.

image.png

■ Hängt es von der Anzahl der Bits in der Python-Umgebung ab? ⇒ NEIN

Als nächstes fragte ich mich, ob es von der Anzahl der Bits in der Python-Umgebung abhängt. Überprüfen Sie die Anzahl der Bits in der Python-Umgebung mit der Maximalgröße des sys-Moduls.

32bit : 2147483647 64bit : 9223372036854775807

image.png

Da das Ergebnis wie oben "9223372036854775807" lautet, ist die Python-Umgebung "64 Bit". Dies hängt nicht von der Anzahl der Bits in der Python-Umgebung ab.

■ Schlussfolgerung ⇒ Es handelt sich um eine lange Typenspezifikation in C-Sprache

"Warum ist die Standardeinstellung int32 (32bit)? </ Font>

Um die Ursache zu verstehen, musste ich mich an die Annahmen von Numpy erinnern.

"Das Innere von NumPy wird von der C-Sprache (und Fortran) implementiert und läuft daher sehr schnell."

Numpy ist in C implementiert und np.int_ ist in C long definiert.

Referenz: "Numpy-Datentyp"

Laut Microsoft beträgt der standardmäßige lange Typ 4 Byte (4 * 8 = 32 Bit). Daher in Windows, unabhängig von der Anzahl der Bits von Betriebssystem, Python und Numpy. Es scheint, dass np.int_ standardmäßig int32 ist.

Referenz: "Grundtypgröße C-Sprache"

Die Schlussfolgerung war "Lange Typspezifikation in C-Sprache" </ font>.

Recommended Posts