Comment multiplier deux matrices en python avec numpy ?

Published: 06 décembre 2016

Tags: Python; Numpy;

DMCA.com Protection Status

Exemples de comment multiplier deux matrices en python avec numpy:

1 -- Fonction dot()

Pour multiplier deux matrices sous python il existe la fonction dot() de numpy, illustration en reprenant l'exemple de wikipedia:

\begin{equation}
A = \left( \begin{array}{ccc}
1 & 2 & 0 \\
4 & 3 & -1
\end{array}\right)
\end{equation}

\begin{equation}
B = \left( \begin{array}{ccc}
5 & 1 \\
2 & 3 \\
3 & 4
\end{array}\right)
\end{equation}

\begin{equation}
C = A * B =
\left( \begin{array}{ccc}
1 & 2 & 0 \\
4 & 3 & -1
\end{array}\right)
*
\left( \begin{array}{ccc}
5 & 1 \\
2 & 3 \\
3 & 4
\end{array}\right)
=
\left( \begin{array}{ccc}
9 & 7 \\
23 & 9
\end{array}\right)
\end{equation}

>>> import numpy as np
>>> A = np.array([[1,2,0],[4,3,-1]])
>>> A.shape
(2, 3)
>>> B = np.array([[5,1],[2,3],[3,4]])
>>> B.shape
(3, 2)
>>> C = A.dot(B)
>>> C
array([[ 9,  7],
       [23,  9]])

2 -- L'opérateur *

Attention: L'opérateur * ne permet pas de multiplier deux matrices !. L'opérateur * multiplie les éléments de même indices.

Note: les deux matrices doivent être de même taille, exemple:

>>> import numpy as np
>>> A = np.array([[1,2,0],[4,3,-1]])
>>> C = np.array([[3,4,5],[1,2,3]])
>>> A * C
array([[ 3,  8,  0],
       [ 4,  6, -3]])

3 -- Multiplier par une constante

Note: pour multiplier tous les éléments d'une matrice par un nombre donné on peut faire comme ceci:

>>> import numpy as np
>>> A = np.array([[1,2,0],[4,3,-1]])
>>> A * 2
array([[ 2,  4,  0],
       [ 8,  6, -2]])

4 -- Références