Hoe waarden in de numpy-array tussen 0 en 1 te normaliseren
Om de waarden van een NumPy-array tussen 0 en 1 te normaliseren, kunt u een van de volgende methoden gebruiken:
Methode 1: Gebruik NumPy
import numpy as np x_norm = (x-np. min (x))/(np. max (x)-np. min (x))
Methode 2: Gebruik Sklearn
from sklearn import preprocessing as pre x = x. reshape (-1, 1) x_norm = pre. MinMaxScaler (). fit_transform (x)
Bij beide methoden wordt ervan uitgegaan dat x de naam is van de NumPy-array die u wilt normaliseren.
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken.
Voorbeeld 1: Normaliseer waarden met NumPy
Stel dat we de volgende NumPy-array hebben:
import numpy as np
#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])
We kunnen de volgende code gebruiken om elke waarde in de array tussen 0 en 1 te normaliseren:
#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. ]
Elke waarde in de NumPy-array is genormaliseerd tussen 0 en 1.
Hier is hoe het werkte:
De minimumwaarde in de dataset is 13 en de maximumwaarde is 71.
Om de eerste waarde van 13 te normaliseren, zouden we de eerder gedeelde formule toepassen:
- z ik = (x ik – min(x)) / (max(x) – min(x)) = (13 – 13) / (71 – 13) = 0
Om de tweede waarde van 16 te normaliseren, zouden we dezelfde formule gebruiken:
- z ik = (x ik – min(x)) / (max(x) – min(x)) = (16 – 13) / (71 – 13) = 0,0517
Om de derde waarde van 19 te normaliseren, zouden we dezelfde formule gebruiken:
- z ik = (x ik – min(x)) / (max(x) – min(x)) = (19 – 13) / (71 – 13) = 0,1034
We gebruiken dezelfde formule om elke waarde in de originele NumPy-array tussen 0 en 1 te normaliseren.
Voorbeeld 2: Waarden normaliseren met behulp van sklearn
Stel opnieuw dat we de volgende NumPy-array hebben:
import numpy as np
#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])
We kunnen de functie MinMaxScaler() van sklearn gebruiken om elke waarde in de array tussen 0 en 1 te normaliseren:
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. ]]
Elke waarde in de NumPy-array is genormaliseerd tussen 0 en 1.
Merk op dat deze genormaliseerde waarden overeenkomen met de waarden die zijn berekend met de vorige methode.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in NumPy kunt uitvoeren:
Hoe elementen in de NumPy-array te bestellen
Hoe dubbele elementen uit de NumPy-array te verwijderen
Hoe u de meest voorkomende waarde in de NumPy-array kunt vinden