Comment créer une matrice identité (ou matrice unité) avec numpy et python ?

Daidalos October 16, 2019


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

Licence


Activity


Google Ads