NumPy est une bibliothèque Python fondamentale pour le calcul scientifique, offrant un objet array multidimensionnel et diverses routines pour des opérations de tableaux rapides. Elle prend en charge les opérations mathématiques, logiques, la manipulation de formes, le tri, les entrées/sorties, les transformations de Fourier, l’algèbre linéaire, les statistiques, les simulations aléatoires, etc.
La meilleure façon d’apprendre est de pratiquer et de s’exercer. Ici, vous pouvez pratiquer les concepts de NumPy avec des exercices allant du plus simple au plus complexe, chacun accompagné d’un exemple de solution et d’une explication. Il est recommandé d’essayer ces exercices par vous-même avant de vérifier les solutions.
Exercice 1:
Ecrire un programme NumPy pour trouver le 4ème élément d’un tableau spécifié.
Exemple de sortie:
[[6 8 1]
[9 2 4]]
Quatrième élément du tableau est:
9
Solution:
# Importer la bibliothèque NumPy avec l'alias 'np'.
import numpy as np
# Création d'un tableau NumPy avec le type (np.int32)
x = np.array([[6, 8, 1], [9, 2, 4]], np.int32)
print(x)
# Accès au quatrième élément (index 3) du tableau aplati
res = x.flat[3]
print("Quatrième élément du tableau est:")
print(res)
Sortie:
[[6 8 1]
[9 2 4]]
Quatrième élément du tableau est:
9
Explication:
res = x.flat[3]: L’attribut flat du tableau « x » renvoie un itérateur unidimensionnel sur les éléments du tableau. Le code accède ensuite au quatrième élément (index 3) du tableau aplati à l’aide de la notation par index.
Exercice 2:
Écrire un programme NumPy pour concaténer deux tableaux à deux dimensions.
# Importer la bibliothèque NumPy avec l'alias 'np'.
import numpy as np
tab1 = np.array([[0, 1, 2], [7, 7, 1]])
tab2 = np.array([[0, 5, 8], [4, 8, 2]])
# Concaténation des tableaux 'tab1' et 'tab2' à l'aide de np.concatenate
tab3 = np.concatenate((tab1, tab2), 1)
print(tab3)
Sortie:
[[0 1 2 0 5 8]
[7 7 1 4 8 2]]
Explication:
tab3 = np.concatenate((tab1, tab2), 1) : La fonction np.concatenate() est utilisée pour joindre les deux tableaux ‘tab1’ et ‘tab2’ selon le deuxième axe (axe=1). Le tableau « tab3 » résultant a la forme (2, 6), les colonnes de « tab2 » étant ajoutées aux colonnes de « tab1 ».
Exercice 3:
Ecrire un programme NumPy pour convertir des tableaux 1-D en colonnes en un tableau 2-D.
# Importer la bibliothèque NumPy avec l'alias 'np'.
import numpy as np
tab1 = np.array((10, 20, 30))
tab2 = np.array((40, 50, 60))
# Empiler les tableaux 'tab1' et 'tab2' en tant que colonnes en utilisant np.column_stack
res = np.column_stack((tab1, tab2))
print(res)
Sortie:
[[10 40]
[20 50]
[30 60]]
Explication:
res = np.column_stack((tab1, tab2)) : La fonction np.column_stack() est utilisée pour empiler les deux tableaux ‘tab1’ et ‘tab2’ en tant que colonnes dans un nouveau tableau 2D. Le tableau résultant « res » a la forme (3, 2), où la première colonne contient les éléments de « tab1 » et la deuxième colonne contient les éléments de « tab2 ».
Exercice 4:
Ecrire un programme NumPy pour obtenir le nombre d’éléments non nuls dans un tableau.
Exemple:
Tableau original:
[[ 0 10 20]
[20 30 40]]
Nombre d'éléments non nuls dans le tableau:
5
Solution:
# Importer la bibliothèque NumPy avec l'alias 'np'.
import numpy as np
tab = np.array([[0, 10, 20], [20, 30, 40]])
print("Tableau original:")
print(tab)
# Compter le nombre d'éléments non nuls dans le tableau en utilisant np.count_nonzero
print("Nombre d'éléments non nuls dans le tableau:")
print(np.count_nonzero(tab))
Sortie:
Tableau original:
[[ 0 10 20]
[20 30 40]]
Nombre d'éléments non nuls dans le tableau:
5
Explication:
print(np.count_nonzero(tab)) : La fonction np.count_nonzero() est utilisée pour compter le nombre d’éléments non nuls dans le tableau « tab ». Dans ce cas, il y a 5 éléments non nuls dans le tableau.
Exercice 5:
Ecrire un programme NumPy pour remplacer les valeurs négatives d’un tableau NumPy par 0.
Exemple:
Tableau original:
[-5 -3 0 1 3 6 5 -7]
Remplacer les valeurs négatives de ce tableau par 0:
[0 0 0 1 3 6 5 0]
Solution:
# Importer la bibliothèque NumPy avec l'alias 'np'.
import numpy as np
tab = np.array([-5, -3, 0, 1, 3, 6, 5, -7])
print("Tableau original:")
print(tab)
print("Remplacer les valeurs négatives de ce tableau par 0:")
# Remplacer toutes les valeurs négatives du tableau 'tab' par 0
tab[tab < 0] = 0
print(tab)
Sortie:
Tableau original:
[-5 -3 0 1 3 6 5 -7]
Remplacer les valeurs négatives de ce tableau par 0:
[0 0 0 1 3 6 5 0]
Explication:
tab[tab < 0] = 0 remplace par des zéros tous les éléments de « tab » pour lesquels la valeur booléenne correspondante est True.
Exercice 6:
Ecrire un programme NumPy pour vérifier si le tableau NumPy est vide ou non.
Exemple:
[3, 4] -> 2
[] -> 0
Solution:
# Importer la bibliothèque NumPy avec l'alias 'np'.
import numpy as np
tab1 = np.array([3, 4])
# Création d'un tableau NumPy vide
tab2 = np.array([])
print(tab1.size)
print(tab2.size)
Sortie:
2
0
Explication:
print(tab1.size): Affiche la taille du tableau « tab1 » à l'aide de l'attribut size. Dans ce cas, la taille est de 2 puisque 'tab1' contient deux éléments.
print(tab2.size): Affiche la taille du tableau 'tab2' en utilisant l'attribut size. Dans ce cas, la taille est de 0 puisque 'tab2' est un tableau vide.
Exercice 7:
Ecrire un programme NumPy pour additionner et calculer le produit des éléments d'un tableau NumPy.
Exemple:
Tableau original:
[10. 20. 30.]
Somme des éléments du tableau:
60.0
Produit des éléments du tableau:
6000.0
Solution:
# Importer la bibliothèque NumPy avec l'alias 'np'.
import numpy as np
# Création d'un tableau NumPy 'x' contenant des valeurs flottantes
x = np.array([10, 20, 30], float)
print("Tableau original:")
print(x)
print("Somme des éléments du tableau:")
# Calculer et afficher la somme des éléments du tableau 'x' à l'aide de la fonction sum().
print(x.sum())
print("Produit des éléments du tableau:")
# Calculer et afficher le produit des éléments du tableau 'x' à l'aide de prod().
print(x.prod())
Sortie:
Tableau original:
[10. 20. 30.]
Somme des éléments du tableau:
60.0
Produit des éléments du tableau:
6000.0
Explication:
Dans l'exercice ci-dessus : x = np.array([10, 20, 30], float) crée un tableau NumPy 'x' avec les éléments 10, 20 et 30 de type float.
print(x.sum()): Calcule la somme de tous les éléments du tableau 'x' à l'aide de la méthode « sum() » et affiche le résultat. Dans ce cas, la somme est de 10 + 20 + 30 = 60.
print(x.prod()): Calcule le produit de tous les éléments du tableau 'x' à l'aide de la méthode « prod() » et affiche le résultat. Dans ce cas, le produit est 10 * 20 * 30 = 6000.
Exercice 8:
Écrire un programme NumPy pour ajouter une ligne à un tableau NumPy vide.
Exemple:
Tableau vide:
[]
Après avoir ajouté deux nouveaux tableaux:
[[10 20 30]
[40 50 60]]
Solution:
# Importer la bibliothèque NumPy avec l'alias 'np'.
import numpy as np
# Création d'un tableau NumPy vide de forme (0, 3) d'entiers
tab = np.empty((0, 3), int)
print("Tableau vide:")
print(tab)
# Ajout de deux nouveaux tableaux au tableau 'tab' verticalement sur l'axe 0
tab = np.append(tab, np.array([[10, 20, 30]]), axis=0)
tab = np.append(tab, np.array([[40, 50, 60]]), axis=0)
print("Après avoir ajouté deux nouveaux tableaux:")
print(tab)
Sortie:
Tableau vide:
[]
Après avoir ajouté deux nouveaux tableaux:
[[10 20 30]
[40 50 60]]
Explication:
Dans l'exercice ci-dessus :
tab = np.empty((0,3), int) : Cette ligne crée un tableau NumPy vide nommé « tab » avec la forme (0, 3) et le type de données integer. Le tableau n'a pas de lignes et 3 colonnes.
tab = np.append(tab, np.array([[10,20,30]]), axis=0) : Ajoute une nouvelle ligne [10, 20, 30] au tableau 'tab' selon l'axe 0 (dans le sens des lignes). Après cette opération, la forme de 'tab' devient (1, 3).
tab = np.append(tab, np.array([[40,50,60]]), axis=0) : Ajoute une autre ligne [40, 50, 60] au tableau 'tab' selon l'axe 0 (dans le sens des lignes). Après cette opération, la forme de 'tab' devient (2, 3).
Enfin, la fonction print(tab) affiche le tableau.
Exercice 9:
Ecrire un programme NumPy pour copier des données d'un tableau donné vers un autre tableau.
Exemple:
Tableau original:
[5 1 4 6 8 9]
Copie de ce tableau:
[5 1 4 6 8 9]
Solution:
# Importer la bibliothèque NumPy avec l'alias 'np'.
import numpy as np
x = np.array([5, 1, 4, 6, 8, 9])
print("Tableau original:")
print(x)
# Création d'un tableau vide 'y' ayant la même forme et le même type que 'x'.
y = np.empty_like(x)
# Copier le contenu de 'x' dans le tableau 'y'
y[:] = x
print("\nCopie de ce tableau:")
print(y)
Sortie:
Tableau original:
[5 1 4 6 8 9]
Copie de ce tableau:
[5 1 4 6 8 9]
Explication:
y = np.empty_like(x): Cela crée un nouveau tableau NumPy y avec la même forme que x et des éléments non initialisés. Dans ce cas, y est également un tableau à 1 dimension avec une longueur de 6.
y[:] = x: Cette ligne de code utilise l'affectation par tranche pour copier les éléments du tableau x dans le tableau y. Les deux-points: dans y[:] représentent une tranche du tableau y entier, de sorte que cette ligne de code affecte tous les éléments de x aux positions correspondantes dans y.
Exercice 10:
Écrire un programme NumPy pour vérifier si un tableau Numpy contient une ligne spécifiée.
# Importer la bibliothèque NumPy avec l'alias 'np'.
import numpy as np
# Générer un tableau NumPy d'entiers de 0 à 19 (exclusifs) et le transformer en une matrice 4x5
nbr = np.arange(20)
tab = np.reshape(nbr, [4, 5])
print("Tableau original:")
print(tab)
# Vérifier si [0, 1, 2, 3, 4] est présent en tant que sous-liste dans le tableau, convertir le tableau en liste en utilisant tolist()
print([0, 1, 2, 3, 4] in tab.tolist())
[0, 1, 2, 3, 4] in tab.tolist() : Convertit le tableau NumPy 'tab' en une liste imbriquée en utilisant tolist() et vérifie si la liste [0, 1, 2, 3, 4] est présente en tant que ligne dans la liste.
Éditeur de code Python: Testez votre code en ligne!
QCM Python – Partie 1Bienvenue dans notre QCM Python ! Que vous soyez débutant ou déjà expérimenté en programmation, ce questionnaire à choix multiples est l’occasion parfaite de tester…Lire plus