np.linalg fournit les opérations d'algèbre linéaire essentielles : produit matriciel, déterminant, inverse, valeurs propres, etc.
Ne pas confondre
A * B → element-wise (chaque case × chaque case)
A @ B → produit matriciel (au sens mathématique)
np.dot(A, B) → équivalent à @
np.matmul(A, B) → équivalent à @Pour le produit matriciel, les dimensions doivent matcher : (m, k) @ (k, n) → (m, n). Sinon erreur.
Exemple
A = np.array([[1, 2], [3, 4]]) # (2, 2)
B = np.array([[5, 6], [7, 8]]) # (2, 2)
A @ B → [[19 22] [43 50]]
A * B → [[ 5 12] [21 32]]np.linalg.det(A) déterminant
np.linalg.inv(A) inverse (seulement si det ≠ 0)
np.linalg.matrix_rank(A) rang
np.linalg.eig(A) valeurs et vecteurs propres
np.linalg.solve(A, b) résout Ax = b (plus stable que inv(A) @ b)
np.linalg.norm(v) norme (longueur d'un vecteur)vals, vecs = np.linalg.eig(A)vals → vecteur des valeurs propres
vecs → matrice dont chaque COLONNE est un vecteur propreA = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])print('Produit:\n', np.dot(A, B))
print('Déterminant A:', np.linalg.det(A)) # -2.0
print('Inverse A:\n', np.linalg.inv(A))
vals, _ = np.linalg.eig(A)
print('Valeurs propres:', vals)Pour résoudre un système linéaire Ax = b, préfère np.linalg.solve(A, b) à np.linalg.inv(A) @ b : plus rapide, plus stable numériquement.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →