Introduction à NumPy : manipulation de tableaux

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *