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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *