Comment normaliser une matrice NumPy : avec des exemples
Normaliser une matrice signifie mettre à l’échelle les valeurs de telle sorte que la plage des valeurs de ligne ou de colonne soit comprise entre 0 et 1.
Le moyen le plus simple de normaliser les valeurs d’une matrice NumPy est d’utiliser la fonction normalize() du package sklearn, qui utilise la syntaxe de base suivante :
from sklearn.preprocessing import normalize #normalize rows of matrix normalize(x, axis=1, norm='l1') #normalize columns of matrix normalize(x, axis=0, norm='l1')
Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.
Exemple 1 : normaliser les lignes de la matrice NumPy
Supposons que nous ayons la matrice NumPy suivante :
import numpy as np #create matrix x = np.arange(0, 36, 4).reshape(3,3) #view matrix print(x) [[ 0 4 8] [12 16 20] [24 28 32]]
Le code suivant montre comment normaliser les lignes de la matrice NumPy :
from sklearn.preprocessing import normalize
#normalize matrix by rows
x_normed = normalize(x, axis=1, norm='l1')
#view normalized matrix
print(x_normed)
[[0. 0.33333333 0.66666667]
[0.25 0.33333333 0.41666667]
[0.28571429 0.33333333 0.38095238]]
Notez que les valeurs de chaque ligne totalisent désormais un.
- Somme de la première ligne : 0 + 0,33 + 0,67 = 1
- Somme de la deuxième ligne : 0,25 + 0,33 + 0,417 = 1
- Somme de la troisième ligne : 0,2857 + 0,3333 + 0,3809 = 1
Exemple 2 : normaliser les colonnes de la matrice NumPy
Supposons que nous ayons la matrice NumPy suivante :
import numpy as np #create matrix x = np.arange(0, 36, 4).reshape(3,3) #view matrix print(x) [[ 0 4 8] [12 16 20] [24 28 32]]
Le code suivant montre comment normaliser les lignes de la matrice NumPy :
from sklearn.preprocessing import normalize
#normalize matrix by columns
x_normed = normalize(x, axis=0, norm='l1')
#view normalized matrix
print(x_normed)
[[0. 0.08333333 0.13333333]
[0.33333333 0.33333333 0.33333333]
[0.66666667 0.58333333 0.53333333]]
Notez que les valeurs de chaque colonne totalisent désormais un.
- Somme de la première colonne : 0 + 0,33 + 0,67 = 1
- Somme de la deuxième colonne : 0,083 + 0,333 + 0,583 = 1
- Somme de la troisième colonne : 0,133 + 0,333 + 0,5333 = 1
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes en Python :
Comment normaliser les tableaux en Python
Comment normaliser les colonnes dans un DataFrame Pandas