[Python] Raison de dtype "int32" dans Numpy (environnement Windows) (à partir de septembre 2020)

J'étais curieux quand j'étudiais Numpy. Par exemple, créez un tableau de Numpy comme indiqué ci-dessous et vérifiez le type de données avec "dtype". Ensuite, "int32" est renvoyé comme suit.

image.png

Je me demandais ici.

"Pourquoi la valeur par défaut est int32 (32 bits)? </ Police>

■ Cela dépend-il du nombre de bits dans l'environnement du système d'exploitation? ⇒ NON

Au début, je me suis demandé si cela dépendait du nombre de bits dans le système d'exploitation. Cependant, mon environnement est 64 bits comme suit. Cela ne dépend pas du nombre de bits dans l'environnement du système d'exploitation.

image.png

■ Cela dépend-il du nombre de bits dans l'environnement Python? ⇒ NON

Ensuite, je me suis demandé si cela dépendait du nombre de bits dans l'environnement Python. Vérifiez le nombre de bits dans l'environnement Python à l'aide de maxsize du module sys.

32bit : 2147483647 64bit : 9223372036854775807

image.png

Comme le résultat est "9223372036854775807" comme ci-dessus, l'environnement Python est "64 bits". Cela ne dépend pas du nombre de bits dans l'environnement Python.

■ Conclusion ⇒ C'est une spécification de type longue en langage C

"Pourquoi la valeur par défaut est int32 (32 bits)? </ Police>

Pour comprendre la cause, je devais me souvenir des hypothèses de Numpy.

"L'intérieur de NumPy est implémenté par le langage C (et Fortran), donc il fonctionne très vite."

Numpy est implémenté en C et np.int_ est défini en C long.

Référence: "Type de données Numpy"

Selon Microsoft, le type long par défaut est de 4 octets (4 * 8 = 32 bits). Par conséquent, sous Windows, quel que soit le nombre de bits de système d'exploitation, python et numpy. Il semble que np.int_ soit int32 par défaut.

Référence: "C language basic type size"

La conclusion était "Spécification de type long en langage C" </ font>.

Recommended Posts