Exemples de comment additionner (sommer) deux ou plusieurs matrices en python:
Additionner deux matrices de même taille
Le cas le plus simple est si deux matrices A et B ont les mêmes dimensions. Soit par exemple la matrice A suivante:
>>> import numpy as np>>> A = np.array(([3,1],[6,4]))>>> Aarray([[3, 1],[6, 4]])
\begin{equation}
A = \left( \begin{array}{ccc}
3 & 1 \\
6 & 4
\end{array}\right)
\end{equation}
et la matrice B:
>>> B = np.array(([1,8],[4,2]))>>> Barray([[1, 8],[4, 2]])
\begin{equation}
B = \left( \begin{array}{ccc}
1 & 8 \\
4 & 2
\end{array}\right)
\end{equation}
Ces deux matrices ont les mêmes dimensions:
>>> A.shape(2, 2)>>> B.shape(2, 2)>>> A.shape == B.shapeTrue
Pour additionner les matrices A et B on peut alors utiliser l'opérateur +:
>>> R = A + B>>> Rarray([[ 4, 9],[10, 6]])>>>
\begin{equation}
R = A + B =
\left( \begin{array}{ccc}
3 & 1 \\
6 & 4
\end{array}\right)
+ \left( \begin{array}{ccc}
1 & 8 \\
4 & 2
\end{array}\right)
=
\left( \begin{array}{ccc}
4 & 9 \\
10 & 6
\end{array}\right)
\end{equation}
Additionner plusieurs matrices
On peut aussi utiliser l'opérateur + pour additionner plusieurs matrices en même temps, exemple avec trois matrices A, B et C:
>>> A = np.array(([1,2],[3,4]))>>> B = np.array(([2,2],[2,2]))>>> C = np.array(([10,10],[10,10]))>>> R = A + B + C>>> Rarray([[13, 14],[15, 16]])
\begin{equation}
R = A + B + C =
\left( \begin{array}{ccc}
1 & 2 \\
3 & 4
\end{array}\right)
+ \left( \begin{array}{ccc}
2 & 2 \\
2 & 2
\end{array}\right)
+
\left( \begin{array}{ccc}
10 & 10 \\
10 & 10
\end{array}\right)
=
\left( \begin{array}{ccc}
13 & 14 \\
15 & 16
\end{array}\right)
\end{equation}
Additionner deux matrices de tailles différentes
Si les matrices ont des tailles différentes:
>>> A = np.array(([1,2,3],[4,5,6],[7,8,9]))>>> Aarray([[1, 2, 3],[4, 5, 6],[7, 8, 9]])>>> B = np.array(([10,20],[30,40]))>>> Barray([[10, 20],[30, 40]])
On ne peut pas additionner A et B (sauf si une des matrices est de dimension (1,1) voir la prochaine section):
>>> A + BTraceback (most recent call last):File "<stdin>", line 1, in <module>ValueError: operands could not be broadcast together with shapes (3,3) (2,2)
par contre il est possible de sélectionner seulement une partie d'une matrice, exemple:
>>> A[0:2,0:2]+Barray([[11, 22],[34, 45]])
Autre exemple:
>>> A[1:3,0:2]+Barray([[14, 25],[37, 48]])
Additionner un nombre à tous les éléments d'une matrice
Pour ajouter un nombre à tous les éléments d'une matrice on peut aussi utiliser l'opérateur +:
>>> A = np.array(([3,1],[6,4]))>>> Aarray([[3, 1],[6, 4]])>>> R = A + 100>>> Rarray([[103, 101],[106, 104]])>>>
Marche aussi
>>> A = np.array(([3,1],[6,4]))>>> B = np.array(([100]))>>> A + Barray([[103, 101],[106, 104]])
Concatenner deux matrices
Note: si l'objectif n'est pas de sommer deux matrices mais de les concatenner on peut par exemple utiliser la fonction concatenate:
>>> A = np.array(([3,1],[6,4]))>>> Aarray([[3, 1],[6, 4]])>>> B = np.array(([1,8],[4,2]))>>> Barray([[1, 8],[4, 2]])>>> np.concatenate((A,B),axis=0)array([[3, 1],[6, 4],[1, 8],[4, 2]])>>> np.concatenate((A,B),axis=1)array([[3, 1, 1, 8],[6, 4, 4, 2]])
