Exemple de comment créer une matrice identité (ou matrice unité) avec numpy et python:
Avec la fonction numpy identity
Pour créer une matrice identité
\begin{equation}
I = \left( \begin{array}{ccc}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{array}\right)
\end{equation}
>>> import numpy as np
>>> I = np.identity(3)
>>> I
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
Autre exemple
\begin{equation}
I = \left( \begin{array}{ccc}
1 & 0 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 & 0 \\
0 & 0 & 1 & 0 & 0 \\
0 & 0 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 & 1
\end{array}\right)
\end{equation}
>>> I = np.identity(5)
>>> I
array([[ 1., 0., 0., 0., 0.],
[ 0., 1., 0., 0., 0.],
[ 0., 0., 1., 0., 0.],
[ 0., 0., 0., 1., 0.],
[ 0., 0., 0., 0., 1.]])
Avec la fonction numpy diagonal
Autre exemple avec la fonction numpy numpy.fill_diagonal
>>> import numpy as np
>>> A = np.zeros((3,3))
>>> A
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> np.fill_diagonal(A, 1)
>>> A
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
Multiplier une matrice identité par une constante
Exemple de comment multiplier une matrice identité par une constante
\begin{equation}
\lambda_{rr}. I = \left( \begin{array}{ccc}
4 & 0 & 0 \\
0 & 4 & 0 \\
0 & 0 & 4
\end{array}\right)
\end{equation}
avec $\lambda_{rr}=4$ (Ridge Regression)
>>> import numpy as np
>>> I = np.identity(3)
>>> I
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
>>> lamda_rr = 4
>>> lamda_rr * I
array([[ 4., 0., 0.],
[ 0., 4., 0.],
[ 0., 0., 4.]])
Autre exemple sur comment calculer rapidement par exemple $\lambda_{rr}. I - Y$:
>>> import numpy as np
>>> lamda_rr = 4
>>> Y = np.arange(9)
>>> Y = Y.reshape(3,3)
>>> Y
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> np.fill_diagonal(Y, Y.diagonal() + lamda_rr)
>>> Y
array([[ 4, 1, 2],
[ 3, 8, 5],
[ 6, 7, 12]])
Références
Liens | Site |
---|---|
Identity matrix | wikipedia |
numpy.identity | numpy doc |
numpy.fill_diagonal | docs.scipy |
Comment ajouter un nombre sur la diagonale d'une matrice python ? | science-emergence.com |