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