Types de données NumPy
NumPy prend en charge beaucoup plus de types de données que les types intégrés de Python, et ils correspondent essentiellement aux types de données du langage C, certains d'entre eux correspondant aux types intégrés de Python. Le tableau suivant répertorie les types de base NumPy couramment utilisés.
| Name | Description |
|---|---|
| bool_ | Type de données booléen (True ou False) |
| int_ | Type entier par défaut (similaire à long en C, int32 ou int64) |
| intc | Identique au type int de C, généralement int32 ou int64 |
| intp | Type entier utilisé pour l'indexation (similaire à ssize_t en C, généralement encore int32 ou int64) |
| ⟦0⟧ | Octet (-128 à 127) |
| int16 | Entier (-32768 à 32767) |
| int32 | Entier (-2147483648 à 2147483647) |
| int64 | Entier (-9223372036854775808 à 9223372036854775807) |
| uint8 | Entier non signé (0 à 255) |
| uint16 | Entier non signé (0 à 65535) |
| uint32 | Entier non signé (0 à 4294967295) |
| uint64 | Entier non signé (0 à 18446744073709551615) |
| float_ | Abréviation du type float64 |
| float16 | Virgule flottante en demi-précision, comprenant : 1 bit de signe, 5 bits d'exposant, 10 bits de mantisse |
| float32 | Virgule flottante en simple précision, comprenant : 1 bit de signe, 8 bits d'exposant, 23 bits de mantisse |
| float64 | Virgule flottante à double précision, comprenant : 1 bit de signe, 11 bits d'exposant, 52 bits de mantisse |
| complex_ | Abréviation du type complex128, c'est-à-dire un nombre complexe de 128 bits |
| complex64 | Nombre complexe, représenté par deux nombres à virgule flottante de 32 bits (partie réelle et partie imaginaire) |
| complex128 | Nombre complexe, représenté par deux nombres à virgule flottante de 64 bits (partie réelle et partie imaginaire) |
Les types numériques de NumPy sont en fait des instances d'objets dtype, chacun correspondant à un caractère unique, notamment np.bool_, np.int32, np.float32, etc.
Objet de type de données (dtype)
Les objets de type de données (instances de la classe numpy.dtype) sont utilisés pour décrire comment la région de mémoire correspondant à un tableau est utilisée. Ils décrivent les aspects suivants des données :
- Le type de données (entier, nombre à virgule flottante ou objet Python)
- La taille des données (par exemple, combien d'octets un entier utilise pour son stockage)
- L'ordre des octets des données (petit-boutiste ou gros-boutiste)
- Dans le cas de types structurés, les noms des champs, le type de données de chaque champ et la partie du bloc mémoire qu'occupe chaque champ
- Si le type de données est un sous-tableau, alors quelles sont sa forme et son type de données.
L'ordre des octets est déterminé en prédéfinissant le type de données<ou>pour décider.<Signifie little-endian (l'octet le moins significatif est stocké à la plus petite adresse, c'est-à-dire que le groupe d'octets de poids faible est placé en premier).>Signifie big-endian (l'octet le plus significatif est stocké à la plus petite adresse, c'est-à-dire que le groupe d'octets de poids fort est placé en premier).
Les objets dtype sont construits à l'aide de la syntaxe suivante :
numpy.dtype(object, align, copy)
- object - l'objet de type de données vers lequel convertir
- align - si vrai, remplir les champs pour le rendre similaire à une structure C.
- copy - copie l'objet dtype ; si faux, il s'agit d'une référence à l'objet de type de données intégré.
Exemples
Ensuite, nous pouvons comprendre à travers des exemples.
Exemple 1
Le résultat de sortie est:
int32
Exemple 2
Le résultat de sortie est:
int32
Exemple 3
Le résultat de sortie est:
int32
L'exemple suivant illustre l'utilisation de types de données structurés ; les champs de type et les types réels correspondants seront créés.
Exemple 4
Le résultat de sortie est:
[('age', 'i1')]
Exemple 5
Le résultat de sortie est:
[(10,) (20,) (30,)]
Exemple 6
Le résultat de sortie est:
[10 20 30]
L'exemple suivant définit un type de données structuré student, contenant un champ de chaîne name, un champ entier age, et un champ à virgule flottante marks, et applique ce dtype à un objet ndarray.
Exemple 7
Le résultat de sortie est:
[('name', 'S20'), ('age', 'i1'), ('marks', 'f4')]
Exemple 8
Le résultat de sortie est:
[(b'abc', 21, 50.) (b'xyz', 18, 75.)]
Chaque type intégré a un code de caractère unique qui le définit, comme suit :
| Caractère | Type correspondant |
|---|---|
| b | Boolean |
| i | Entier (signé) |
| u | Entier non signé |
| f | Nombre à virgule flottante |
| c | Nombre complexe à virgule flottante |
| m | timedelta (intervalle de temps) |
| M | datetime (date et heure) |
| O | objet (Python) |
| S, a | (chaîne d'octets) |
| U | Unicode |
| V | Données brutes (void) |