Introduction à Numpy
1. Introduction à NumPy
NumPy (Numerical Python) est une bibliothèque qui permet de manipuler des tableaux multidimensionnels (arrays) et fournit une grande variété de fonctions mathématiques pour effectuer des calculs efficaces sur ces tableaux. NumPy est largement utilisé en science des données, machine learning, et dans d’autres domaines où des calculs numériques rapides et optimisés sont nécessaires.
2. Installation de NumPy
Pour commencer, il faut installer la bibliothèque NumPy si ce n’est pas déjà fait :
pip install numpy
Ensuite, dans tes scripts Python, importe NumPy :
import numpy as np
3. Les tableaux NumPy (ndarray)
Le cœur de NumPy est son objet ndarray, qui représente des tableaux multidimensionnels d’éléments du même type. Contrairement aux listes Python, les tableaux NumPy sont plus rapides et consomment moins de mémoire.
a) Créer des tableaux NumPy
Il existe plusieurs façons de créer un tableau NumPy :
-
À partir de listes ou tuples :
# Créer un tableau 1Darr = np.array([1, 2, 3, 4])print(arr) # Affiche : [1 2 3 4]# Créer un tableau 2Darr_2d = np.array([[1, 2], [3, 4]])print(arr_2d) # Affiche : [[1 2] [3 4]] -
Avec des fonctions NumPy :
np.zeros()
: Créer un tableau rempli de zéros.np.ones()
: Créer un tableau rempli de uns.np.arange()
: Créer un tableau avec une séquence d’entiers.np.linspace()
: Créer un tableau avec des valeurs espacées de manière égale sur un intervalle.
Exemple :
arr_zeros = np.zeros((2, 3)) # Tableau 2x3 rempli de zérosarr_range = np.arange(0, 10, 2) # Tableau avec une séquence de 0 à 10 (pas de 2)
b) Les attributs importants d’un tableau NumPy
Voici quelques attributs utiles pour explorer un tableau NumPy :
ndarray.shape
: Retourne les dimensions du tableau (ex. :(2, 3)
pour un tableau 2x3).ndarray.size
: Nombre total d’éléments dans le tableau.ndarray.ndim
: Retourne le nombre de dimensions du tableau (1D, 2D, etc.).ndarray.dtype
: Type des éléments du tableau.
Exemple :
arr = np.array([[1, 2, 3], [4, 5, 6]])print(arr.shape) # Affiche : (2, 3)print(arr.size) # Affiche : 6print(arr.ndim) # Affiche : 2 (dimensions)print(arr.dtype) # Affiche : int64 (type des éléments)
4. Manipulation des tableaux NumPy
a) Accès aux éléments
L’accès aux éléments d’un tableau NumPy fonctionne de manière similaire à l’accès aux éléments dans une liste Python, mais avec une syntaxe plus puissante pour les tableaux multidimensionnels.
Exemple :
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# Accéder à un élément spécifiqueprint(arr[0, 1]) # Affiche 2 (élément à la première ligne, deuxième colonne)
# Slicing (extraire une sous-partie)sub_arr = arr[1:, :2] # Extrait les lignes à partir de l’indice 1 et les deux premières colonnesprint(sub_arr) # Affiche : [[4 5], [7 8]]
b) Modification des tableaux
Les tableaux NumPy peuvent être modifiés en modifiant directement les éléments via leurs indices ou en utilisant des fonctions.
arr[0, 0] = 100 # Modifier l'élément en (0,0)print(arr) # Affiche : [[100 2 3], [4 5 6], [7 8 9]]
c) Opérations arithmétiques
NumPy permet de réaliser des opérations arithmétiques vectorisées sur des tableaux de manière élément par élément (élément-wise) :
-
Addition, soustraction, multiplication, division :
arr = np.array([1, 2, 3])print(arr + 10) # Affiche : [11 12 13]print(arr * 2) # Affiche : [2 4 6] -
Addition et multiplication de tableaux : Si les tableaux ont les mêmes dimensions, les opérations sont effectuées élément par élément :
arr1 = np.array([1, 2, 3])arr2 = np.array([4, 5, 6])print(arr1 + arr2) # Affiche : [5 7 9]print(arr1 \* arr2) # Affiche : [4 10 18]```
d) Fonctions universelles (ufunc)
NumPy propose une large gamme de fonctions universelles pour appliquer des opérations mathématiques sur les tableaux.
np.sqrt()
: Racine carréenp.exp()
: Exponentiellenp.log()
: Logarithme naturelnp.mean()
: Moyennenp.sum()
: Somme des éléments
Exemple :
arr = np.array([1, 4, 9, 16])sqrt_arr = np.sqrt(arr) # Racine carrée de chaque élémentprint(sqrt_arr) # Affiche : [1. 2. 3. 4.]
5. Reshape et Broadcasting
a) Reshape
La méthode reshape()
permet de changer la forme (dimensions) d’un tableau sans en modifier les données.
Exemple :
arr = np.arange(6) # Tableau de 0 à 5arr_reshaped = arr.reshape((2, 3)) # Reshape en tableau 2x3print(arr_reshaped) # Affiche : [[0 1 2], [3 4 5]]
b) Broadcasting
Le broadcasting permet à NumPy d’effectuer des opérations entre des tableaux de différentes formes en étendant automatiquement leurs dimensions pour qu’ils correspondent.
Exemple :
arr1 = np.array([1, 2, 3])arr2 = np.array([[1], [2], [3]]) # Tableau 3x1result = arr1 + arr2print(result) # Affiche : [[2 3 4], [3 4 5], [4 5 6]]
6. Statistiques avec NumPy
NumPy offre de nombreuses fonctions pour des calculs statistiques rapides :
np.mean()
: Moyennenp.median()
: Médianenp.std()
: Écart-typenp.min()
etnp.max()
: Minimum et maximumnp.sum()
: Somme des élémentsnp.cumsum()
: Somme cumulée
Exemple :
arr = np.array([1, 2, 3, 4, 5])print(np.mean(arr)) # Affiche : 3.0print(np.std(arr)) # Affiche : 1.4142135623730951 (écart-type)
7. Conclusion : Apprendre NumPy
NumPy est une bibliothèque incontournable pour le calcul numérique. En apprenant à manipuler ses tableaux et à utiliser ses fonctions, tu peux travailler avec des données volumineuses, optimiser des calculs mathématiques, et préparer des pipelines pour le machine learning, l’analyse de données, ou la modélisation scientifique.
Résumé des concepts clés :
- Tableaux NumPy : Création, manipulation, et exploration.
- Opérations arithmétiques : Element-wise et vectorisées.
- Fonctions universelles : Calculs mathématiques optimisés.
- Reshape et Broadcasting : Manipulation flexible des dimensions.
- Statistiques : Outils statistiques intégrés.