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)