Introduction
NumPy (Numeric Python) est une bibliothèque essentielle pour le calcul scientifique en Python. Elle offre des fonctionnalités puissantes pour manipuler des tableaux multidimensionnels et effectuer des opérations mathématiques de manière rapide et efficace. Grâce à ses structures de données optimisées, NumPy est la base de nombreuses autres bibliothèques Python, comme pandas et scikit-learn, utilisées pour l'analyse de données et le machine learning.
Dans cet article, nous allons explorer les bases de NumPy, y compris la création de tableaux, la manipulation des données, et les opérations de calcul.
1. Installation de NumPy
Si vous n'avez pas encore installé NumPy, vous pouvez le faire avec la commande suivante :
pip install numpy
Ensuite, vous pouvez importer NumPy dans votre code Python :
import numpy as np
2. Qu'est-ce qu'un tableau NumPy ?
Un tableau NumPy (ou array) est une structure de données multidimensionnelle. Contrairement aux listes Python classiques, les tableaux NumPy sont optimisés pour le calcul vectoriel et les opérations mathématiques, ce qui les rend plus performants pour traiter de grandes quantités de données numériques.
Exemple de création de tableau NumPy
import numpy as np
# Créer un tableau 1D
tableau_1d = np.array([1, 2, 3, 4, 5])
# Créer un tableau 2D
tableau_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(tableau_1d)
print(tableau_2d)
3. Création de tableaux avec NumPy
NumPy propose plusieurs fonctions pour créer des tableaux sans devoir entrer manuellement chaque élément.
3.1. Créer un tableau rempli de zéros ou de uns
zeros = np.zeros((3, 3)) # Tableau 3x3 rempli de zéros
uns = np.ones((2, 4)) # Tableau 2x4 rempli de uns
print(zeros)
print(uns)
3.2. Créer un tableau avec des nombres aléatoires
aleatoire = np.random.random((3, 3)) # Tableau 3x3 avec des valeurs aléatoires entre 0 et 1
print(aleatoire)
3.3. Créer un tableau avec une séquence de nombres
sequence = np.arange(0, 10, 2) # Génère un tableau [0, 2, 4, 6, 8]
print(sequence)
linspace = np.linspace(0, 1, 5) # Génère 5 valeurs également espacées entre 0 et 1
print(linspace)
3.4. Créer une matrice identité
identite = np.eye(3) # Matrice identité 3x3
print(identite)
4. Attributs des tableaux NumPy
Les tableaux NumPy ont des attributs permettant d'accéder à leurs propriétés essentielles.
tableau = np.array([[1, 2, 3], [4, 5, 6]])
print("Dimensions :", tableau.shape) # Dimensions du tableau
print("Nombre d'éléments :", tableau.size) # Nombre total d'éléments
print("Type de données :", tableau.dtype) # Type des éléments du tableau
5. Indexation et slicing (découpage)
Les indexations et slicing sont des techniques pour accéder à des éléments spécifiques dans un tableau ou pour extraire des sous-tableaux.
5.1. Accéder à un élément
tableau = np.array([[1, 2, 3], [4, 5, 6]])
print(tableau[0, 1]) # Accède à l'élément de la première ligne, deuxième colonne (valeur 2)
5.2. Extraire des sous-tableaux
sous_tableau = tableau[0, :] # Première ligne entière
print(sous_tableau)
sous_tableau_col = tableau[:, 1] # Deuxième colonne entière
print(sous_tableau_col)
6. Opérations mathématiques avec NumPy
L'un des grands avantages de NumPy est la possibilité de réaliser des opérations mathématiques directement sur les tableaux.
6.1. Opérations élémentaires
NumPy permet d'effectuer des opérations comme l'addition, la soustraction, la multiplication et la division sur les éléments d'un tableau.
tableau1 = np.array([1, 2, 3])
tableau2 = np.array([4, 5, 6])
addition = tableau1 + tableau2
multiplication = tableau1 * tableau2
print("Addition :", addition) # Affiche [5 7 9]
print("Multiplication :", multiplication) # Affiche [4 10 18]
6.2. Fonctions mathématiques
NumPy fournit des fonctions mathématiques, comme np.sqrt
pour la racine carrée ou np.exp
pour l'exponentielle.
carres = np.square(tableau1) # Éléments au carré
racines = np.sqrt(tableau1) # Racine carrée
print("Carrés :", carres)
print("Racines :", racines)
7. Manipulation de la forme des tableaux
NumPy offre des méthodes pour modifier la forme (ou dimensions) des tableaux sans changer les données.
7.1. Changer la forme d’un tableau avec reshape
tableau = np.arange(1, 7) # Génère [1 2 3 4 5 6]
tableau_reshape = tableau.reshape(2, 3) # Transforme en un tableau 2x3
print(tableau_reshape)
7.2. Applatir un tableau multidimensionnel
La méthode flatten()
convertit un tableau multidimensionnel en un tableau 1D.
tableau_2d = np.array([[1, 2, 3], [4, 5, 6]])
tableau_1d = tableau_2d.flatten()
print(tableau_1d)
8. Opérations sur les axes d’un tableau
Dans NumPy, vous pouvez appliquer des fonctions le long d’un axe spécifique d’un tableau multidimensionnel.
8.1. Calculer la somme sur un axe
tableau = np.array([[1, 2, 3], [4, 5, 6]])
# Somme par ligne (axis=1)
somme_lignes = np.sum(tableau, axis=1)
print("Somme par ligne :", somme_lignes)
# Somme par colonne (axis=0)
somme_colonnes = np.sum(tableau, axis=0)
print("Somme par colonne :", somme_colonnes)
9. Masquage et filtrage des données
Les masques permettent de filtrer les éléments d’un tableau en fonction de conditions spécifiques.
Exemple : Filtrer les éléments d’un tableau
tableau = np.array([1, 2, 3, 4, 5, 6])
# Obtenir les éléments supérieurs à 3
masque = tableau > 3
resultat = tableau[masque]
print(resultat) # Affiche [4 5 6]
Conclusion
NumPy est une bibliothèque incontournable pour le traitement de données numériques en Python. Avec ses fonctionnalités avancées de création, manipulation et calcul, NumPy vous permet de travailler efficacement avec des tableaux multidimensionnels, même pour des volumes de données importants. En maîtrisant ces bases, vous pouvez optimiser vos opérations de calcul scientifique et structurer vos projets d'analyse de données de manière performante.