đą Produit matriciel (NumPy)
Le produit matriciel est une opération mathématique omniprésente en science des données. Il s'applique sur deux matrices. Le produit matriciel d'une matrice par une matrice s'écrit:
En NumPy, on peut calculer le produit matriciel avec la fonction np.dot.
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 faire le produit matriciel d'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 .
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 :
Vous pouvez constater que si l'on intervertit et , le rĂ©sultat n'est pas le mĂȘme.
Mathématiquement, on dit que l'opérateur n'est pas commutatif.
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" (ici ) doivent correspondre.