Les types de données NumPy

Comme je te l’ai déjà dit, le seul prérequis pour suivre ce cours est de connaître les bases de Python. Si tu connais les bases de Python, tu sais ce que sont les types de données.

Les types de données dans NumPy ne sont pas différents des types de données dans Python. Nous avons les mêmes,

  • int (par exemple : 1, 5, 67, 4345, etc…)
  • str (par exemple ‘1’, ‘Rod’, ‘banane’, ‘code’, ‘TU ES GENIAL’, etc…)
  • float (par exemple 5.33, 3.14, 0.432, 100.000, etc…)
  • bool (par exemple True ou False)

En NumPy, nous avons un attribut (tu apprendras bientôt à connaître les attributs) appelé dtype pour connaître le type de données d’un tableau. Nous avons de nombreux attributs dans NumPy, nous les étudierons en profondeur au chapitre 4.

Créons maintenant des tableaux de différents types de données, un par un :

int

arr1 = np.array([1, 2, 3, 4])
arr1.dtype

# OUTPUT: dtype('int64')

Le 64 dans ('int64') indique que chaque élément du tableau occupe 64 bits (8 octets) d’espace. Si tu souhaites réduire l’utilisation de la mémoire, tu peux remplacer le type de données 'int64' par 'int32' ou 'int16'.

Voici comment procéder :

arr1 = np.array([1, 2, 3, 4], dtype='int32')
arr1.dtype

# OUTPUT: dtype('int32')

Si tu ne spécifies aucune valeur dans le paramètre dtype, NumPy prend 64 bits par défaut.

Exercice : Essaye maintenant de changer le paramètre dtype en 'int16' et exécute la cellule.

str

Lorsque chaque élément du tableau est placé entre guillemets simples ou doubles, le tableau est constitué d’éléments de type string (chaîne de caractères).

arr2 = np.array(['a', 'b', 'c', 'd'])
arr2.dtype

# OUTPUT: dtype('<U1')

Ne te laisse pas déconcerter par '<U1'. Le U dans '<U1' signifie caractère Unicode et le 1 est la longueur maximale des éléments dans le tableau NumPy. Comme tu peux le voir, tous les éléments de notre tableau sont de longueur 1, c’est pourquoi nous obtenons '<U1'.

Créons des éléments de différentes longueurs et voyons ce que nous obtenons.

arr2 = np.array(['pomme', 'banane', 'cerise', 'dragon', 'Hello World!'])
arr2.dtype

# OUTPUT: dtype('<U12')

Nous avons obtenu '<U12' parce que la plus grande chaîne de notre tableau est 'Hello World!' et que sa longueur est de 12.

Exercice : Crée maintenant un tableau avec un ensemble différent d’éléments de longueurs différentes et vois ce que tu obtiens.

Nous pouvons également convertir un tableau contenant des éléments int en str en passant 'str' dans le paramètre dtype. Voir le code ci-dessous :

arr1 = np.array([1, 2, 3, 4], dtype=str)
arr1, arr1.dtype

# OUTPUT: dtype('<U1')

Passons au float.

float

arr3 = np.array([1.2, 2.3, 3.4, 4.5])
arr3.dtype

# OUTPUT: dtype('float64')

Tu peux faire la même chose qu’avec le type de données int pour changer la valeur du bit de 64 à 32 ou 16.

Exercice : Change le dtype de 'float64' en 'float16'.

Enfin, créons un tableau avec des éléments bool.

bool

arr4 = np.array([True, False, True, False])
arr4.dtype

True et False sont les deux seuls éléments de type bool.

Ce sont les 4 types de données NumPy importants que tu dois connaître.

Il est temps de passer au chapitre suivant 👉 Création de tableaux NumPy de différentes dimensions.