🔢 Produit matriciel (NumPy)
La fonction np.dot est fondamentale en NumPy pour effectuer des multiplications de matrices et des produits scalaires. Elle est omniprésente en science des données et en apprentissage machine.
Qu'est-ce que le produit matriciel ?​
Le produit matriciel n'est pas une simple multiplication élément par élément. C'est une opération qui combine les rangées de la première matrice avec les colonnes de la seconde.
Pour multiplier une matrice par une matrice :
- Le nombre de colonnes de doit être égal au nombre de rangées de .
- La matrice résultante aura le nombre de rangées de et le nombre de colonnes de .
Imaginez que nous voulons calculer .
Formule mathématique​
Chaque élément de la matrice résultat est la somme des produits des éléments de la rangée de et de la colonne de .
Cela correspond mathématiquement au produit scalaire du vecteur rangée de avec le vecteur colonne de .
Exemple détaillé​
Prenons deux matrices :
Calculons le résultat :
-
Position (0,0) : rangée 0 de A colonne 0 de B
-
Position (0,1) : rangée 0 de A colonne 1 de B
-
Position (1,0) : rangée 1 de A colonne 0 de B
-
Position (1,1) : rangée 1 de A colonne 1 de B
Résultat final :
Utilisation de np.dot​
NumPy rend ce calcul très simple.
import numpy as np
# Définition des matrices
A = np.array([[1, 2, 3],
[4, 5, 6]])
B = np.array([[7, 8],
[9, 10],
[11,12]])
# Calcul du produit matriciel
C = np.dot(A, B)
print(C)
# Affiche :
# [[ 58 64]
# [139 154]]
Depuis Python 3.5, vous pouvez utiliser l'opérateur @ qui est un raccourci syntaxique pour le produit matriciel.
C = A @ B # Exactement équivalent à np.dot(A, B) pour des matrices 2D
Une erreur fréquente est d'utiliser l'astérisque * pour multiplier des matrices. En NumPy, * effectue une multiplication élément par élément, ce qui est mathématiquement différent.
Pour ne pas avoir d'erreurs, vérifiez toujours les dimensions (shapes) :
Les dimensions "intérieures" () doivent correspondre.