NumPy - Types de données

NumPy prend en charge une plus grande variété de types numériques que Python. Le tableau suivant présente les différents types de données scalaires définis dans NumPy.

N ° Sr. Types de données et description
1

bool_

Boolean (True ou False) stocké sous forme d'octet

2

int_

Type entier par défaut (identique à C long; normalement soit int64 ou int32)

3

intc

Identique à C int (normalement int32 ou int64)

4

intp

Entier utilisé pour l'indexation (identique à C ssize_t; normalement soit int32 ou int64)

5

int8

Octet (-128 à 127)

6

int16

Entier (-32768 à 32767)

sept

int32

Entier (-2147483648 à 2147483647)

8

int64

Entier (-9223372036854775808 à 9223372036854775807)

9

uint8

Entier non signé (0 à 255)

dix

uint16

Entier non signé (0 à 65535)

11

uint32

Entier non signé (0 à 4294967295)

12

uint64

Entier non signé (0 à 18446744073709551615)

13

float_

Raccourci pour float64

14

float16

Flottant demi-précision: bit de signe, exposant 5 bits, mantisse 10 bits

15

float32

Flotteur simple précision: bit de signe, exposant 8 bits, mantisse 23 bits

16

float64

Flotteur double précision: bit de signe, exposant 11 bits, mantisse 52 bits

17

complex_

Raccourci pour complex128

18

complex64

Nombre complexe, représenté par deux flottants 32 bits (composants réels et imaginaires)

19

complex128

Nombre complexe, représenté par deux flottants 64 bits (composants réels et imaginaires)

Les types numériques NumPy sont des instances d'objets dtype (type de données), chacun ayant des caractéristiques uniques. Les dtypes sont disponibles sous les noms np.bool_, np.float32, etc.

Objets de type de données (dtype)

Un objet de type de données décrit l'interprétation d'un bloc fixe de mémoire correspondant à un tableau, en fonction des aspects suivants -

  • Type de données (entier, flottant ou objet Python)

  • Taille des données

  • Ordre des octets (petit-boutiste ou grand-boutiste)

  • En cas de type structuré, les noms des champs, le type de données de chaque champ et une partie du bloc mémoire prise par chaque champ.

  • Si le type de données est un sous-tableau, sa forme et son type de données

L'ordre des octets est décidé en préfixant «<» ou «>» au type de données. «<» signifie que le codage est petit-boutiste (le moins significatif est stocké dans la plus petite adresse). '>' signifie que l'encodage est big-endian (l'octet le plus significatif est stocké dans la plus petite adresse).

Un objet dtype est construit en utilisant la syntaxe suivante -

numpy.dtype(object, align, copy)

Les paramètres sont -

  • Object - À convertir en objet de type de données

  • Align - Si vrai, ajoute un remplissage au champ pour le rendre similaire à C-struct

  • Copy- Crée une nouvelle copie de l'objet dtype. Si false, le résultat est une référence à un objet de type de données intégré

Exemple 1

# using array-scalar type 
import numpy as np 
dt = np.dtype(np.int32) 
print dt

La sortie est la suivante -

int32

Exemple 2

#int8, int16, int32, int64 can be replaced by equivalent string 'i1', 'i2','i4', etc. 
import numpy as np 

dt = np.dtype('i4')
print dt

La sortie est la suivante -

int32

Exemple 3

# using endian notation 
import numpy as np 
dt = np.dtype('>i4') 
print dt

La sortie est la suivante -

>i4

Les exemples suivants illustrent l'utilisation du type de données structurées. Ici, le nom du champ et le type de données scalaire correspondant doivent être déclarés.

Exemple 4

# first create structured data type 
import numpy as np 
dt = np.dtype([('age',np.int8)]) 
print dt

La sortie est la suivante -

[('age', 'i1')]

Exemple 5

# now apply it to ndarray object 
import numpy as np 

dt = np.dtype([('age',np.int8)]) 
a = np.array([(10,),(20,),(30,)], dtype = dt) 
print a

La sortie est la suivante -

[(10,) (20,) (30,)]

Exemple 6

# file name can be used to access content of age column 
import numpy as np 

dt = np.dtype([('age',np.int8)]) 
a = np.array([(10,),(20,),(30,)], dtype = dt) 
print a['age']

La sortie est la suivante -

[10 20 30]

Exemple 7

Les exemples suivants définissent un type de données structurées appelé student avec un champ de chaîne 'nom', un integer field 'age' et un float field'Des marques'. Ce dtype est appliqué à l'objet ndarray.

import numpy as np 
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) 
print student

La sortie est la suivante -

[('name', 'S20'), ('age', 'i1'), ('marks', '<f4')])

Exemple 8

import numpy as np 

student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) 
a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student) 
print a

La sortie est la suivante -

[('abc', 21, 50.0), ('xyz', 18, 75.0)]

Chaque type de données intégré a un code de caractère qui l'identifie de manière unique.

  • 'b' - booléen

  • 'i' - entier (signé)

  • 'u' - entier non signé

  • 'f' - virgule flottante

  • 'c' - virgule flottante complexe

  • 'm' - timedelta

  • 'M' - date / heure

  • 'O' - (Python) objets

  • 'S', 'a' - Chaîne (octet-)

  • 'U' - Unicode

  • 'V' - données brutes (nulles)