Comment normaliser les valeurs dans le tableau NumPy entre 0 et 1



Pour normaliser les valeurs d’un tableau NumPy entre 0 et 1, vous pouvez utiliser l’une des méthodes suivantes :

Méthode 1 : utiliser NumPy

import numpy as np

x_norm = (x-np.min(x))/(np.max(x)-np.min(x))

Méthode 2 : utiliser Sklearn

from sklearn import preprocessing as pre

x = x.reshape(-1, 1)

x_norm = pre.MinMaxScaler().fit_transform(x)

Les deux méthodes supposent que x est le nom du tableau NumPy que vous souhaitez normaliser.

Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.

Exemple 1 : normaliser les valeurs à l’aide de NumPy

Supposons que nous ayons le tableau NumPy suivant :

import numpy as np

#create NumPy array
x = np.array([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])

Nous pouvons utiliser le code suivant pour normaliser chaque valeur du tableau entre 0 et 1 :

#normalize all values to be between 0 and 1
x_norm = (x-np.min(x))/(np.max(x)-np.min(x))

#view normalized array
print(x_norm)

[0.         0.05172414 0.10344828 0.15517241 0.17241379 0.43103448
 0.5862069  0.74137931 0.77586207 0.86206897 0.89655172 0.98275862
 1.        ]

Chaque valeur du tableau NumPy a été normalisée pour être comprise entre 0 et 1.

Voici comment cela a fonctionné :

La valeur minimale dans l’ensemble de données est 13 et la valeur maximale est 71.

Pour normaliser la première valeur de 13 , nous appliquerions la formule partagée précédemment :

  • z je = (x je – min(x)) / (max(x) – min(x)) = (13 – 13) / (71 – 13) = 0

Pour normaliser la deuxième valeur de 16 , nous utiliserions la même formule :

  • z je = (x je – min(x)) / (max(x) – min(x)) = (16 – 13) / (71 – 13) = 0,0517

Pour normaliser la troisième valeur de 19 , nous utiliserions la même formule :

  • z je = (x je – min(x)) / (max(x) – min(x)) = (19 – 13) / (71 – 13) = 0,1034

Nous utilisons cette même formule pour normaliser chaque valeur du tableau NumPy d’origine entre 0 et 1.

Exemple 2 : normaliser les valeurs à l’aide de sklearn

Encore une fois, supposons que nous ayons le tableau NumPy suivant :

import numpy as np

#create NumPy array
x = np.array([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])

Nous pouvons utiliser la fonction MinMaxScaler() de sklearn pour normaliser chaque valeur du tableau entre 0 et 1 :

from sklearn import preprocessing as pre

#reshape array so that it works with sklearn
x = x.reshape(-1, 1)

#normalize all values to be between 0 and 1
x_norm = pre.MinMaxScaler().fit_transform(x)

#view normalized array
print(x_norm)

[[0.        ]
 [0.05172414]
 [0.10344828]
 [0.15517241]
 [0.17241379]
 [0.43103448]
 [0.5862069 ]
 [0.74137931]
 [0.77586207]
 [0.86206897]
 [0.89655172]
 [0.98275862]
 [1.        ]]

Chaque valeur du tableau NumPy a été normalisée pour être comprise entre 0 et 1.

Notez que ces valeurs normalisées correspondent à celles calculées à l’aide de la méthode précédente.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans NumPy :

Comment classer les éléments dans le tableau NumPy
Comment supprimer les éléments en double du tableau NumPy
Comment trouver la valeur la plus fréquente dans le tableau NumPy

Ajouter un commentaire

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