📘 Fiche de cours
L'essentiel du cours
1. Introduction à NumPy
NumPy (Numerical Python) est la bibliothèque fondamentale pour le calcul scientifique en Python. Elle introduit l'objet ndarray (n-dimensional array), qui est beaucoup plus performant que les listes Python pour les calculs numériques.
2. Création de tableaux
- À partir de listes :
np.array([1, 2, 3]) - Tableaux prédéfinis :
np.zeros((n, p)): Matrice de zéros de taille $n \times p$.np.ones((n, p)): Matrice de uns.np.eye(n): Matrice identité $I_n$.
- Suites numériques :
np.arange(début, fin, pas): Exclut la fin.np.linspace(début, fin, nombre): Inclut la fin, calcule le pas automatiquement.
3. Attributs principaux
Soit A un tableau NumPy :
A.ndim: Nombre de dimensions (1 pour un vecteur, 2 pour une matrice).A.shape: Tuple représentant les dimensions (lignes, colonnes).A.size: Nombre total d'éléments.A.dtype: Type des éléments (int32, float64, etc.).
4. Opérations et Fonctions
- Opérations élément par élément :
+,-,*,/,**s'appliquent à chaque position. - Produit matriciel : On utilise l'opérateur
@ou la fonctionnp.dot(A, B). - Fonctions mathématiques :
np.exp(A),np.sin(A),np.sqrt(A)s'appliquent à tout le tableau (vectorisation).
Méthodes à maîtriser
- Accès aux éléments :
A[i, j]pour l'élément à la ligne $i$ et colonne $j$ (les indices commencent à 0). - Slicing :
A[i1:i2, j1:j2]pour extraire une sous-matrice.A[:, j]pour extraire la colonne $j$. - Redimensionnement :
A.reshape(n, p)pour changer la forme sans modifier les données. - Agrégation :
np.sum(A),np.mean(A),np.max(A)pour calculer la somme, la moyenne ou le maximum.
Exemples corrigés
Exemple 1 : Création et Slicing
import numpy as np
M = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# Extraire la deuxième ligne
ligne2 = M[1, :] # Résultat: [4, 5, 6]
# Extraire le bloc [[5, 6], [8, 9]]
bloc = M[1:3, 1:3]
Exemple 2 : Calcul vectorisé Calculer $y = \sin(x)$ pour 100 points entre $0$ et $2\pi$.
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
Erreurs fréquentes
- Confondre
*et@:A * Bmultiplie les éléments correspondants ($a_{ij} \times b_{ij}$), alors queA @ Beffectue le produit matriciel classique. - Oublier les parenthèses doubles : Écrire
np.zeros(3, 2)au lieu denp.zeros((3, 2)). - Types mixtes : NumPy force un seul type par tableau. Si vous mettez un float dans un tableau d'entiers, il sera converti ou provoquera une erreur.
- Indices hors limites : Essayer d'accéder à
A[3]pour un tableau de taille 3 (les indices sont 0, 1, 2).