So normalisieren sie werte im numpy-array zwischen 0 und 1
Um die Werte eines NumPy-Arrays zwischen 0 und 1 zu normalisieren, können Sie eine der folgenden Methoden verwenden:
Methode 1: Verwenden Sie NumPy
import numpy as np x_norm = (x-np. min (x))/(np. max (x)-np. min (x))
Methode 2: Verwenden Sie Sklearn
from sklearn import preprocessing as pre x = x. reshape (-1, 1) x_norm = pre. MinMaxScaler (). fit_transform (x)
Bei beiden Methoden wird davon ausgegangen, dass x der Name des NumPy-Arrays ist, das Sie normalisieren möchten.
Die folgenden Beispiele zeigen, wie die einzelnen Methoden in der Praxis angewendet werden.
Beispiel 1: Werte mit NumPy normalisieren
Angenommen, wir haben das folgende NumPy-Array:
import numpy as np
#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])
Wir können den folgenden Code verwenden, um jeden Wert im Array zwischen 0 und 1 zu normalisieren:
#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. ]
Jeder Wert im NumPy-Array wurde so normalisiert, dass er zwischen 0 und 1 liegt.
So hat es funktioniert:
Der Mindestwert im Datensatz beträgt 13 und der Höchstwert 71.
Um den ersten Wert von 13 zu normalisieren, würden wir die zuvor geteilte Formel anwenden:
- z i = (x i – min(x)) / (max(x) – min(x)) = (13 – 13) / (71 – 13) = 0
Um den zweiten Wert von 16 zu normalisieren, würden wir dieselbe Formel verwenden:
- z i = (x i – min(x)) / (max(x) – min(x)) = (16 – 13) / (71 – 13) = 0,0517
Um den dritten Wert von 19 zu normalisieren, würden wir dieselbe Formel verwenden:
- z i = (x i – min(x)) / (max(x) – min(x)) = (19 – 13) / (71 – 13) = 0,1034
Wir verwenden dieselbe Formel, um jeden Wert im ursprünglichen NumPy-Array zwischen 0 und 1 zu normalisieren.
Beispiel 2: Werte mit sklearn normalisieren
Nehmen wir erneut an, wir haben das folgende NumPy-Array:
import numpy as np
#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])
Wir können die MinMaxScaler() -Funktion von sklearn verwenden, um jeden Wert im Array zwischen 0 und 1 zu normalisieren:
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. ]]
Jeder Wert im NumPy-Array wurde so normalisiert, dass er zwischen 0 und 1 liegt.
Beachten Sie, dass diese normalisierten Werte mit denen übereinstimmen, die mit der vorherigen Methode berechnet wurden.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in NumPy ausführen:
So ordnen Sie Elemente im NumPy-Array an
So entfernen Sie doppelte Elemente aus dem NumPy-Array
So finden Sie den häufigsten Wert im NumPy-Array