Come normalizzare i valori nell'array numpy tra 0 e 1
Per normalizzare i valori di un array NumPy compresi tra 0 e 1, puoi utilizzare uno dei seguenti metodi:
Metodo 1: utilizzare NumPy
import numpy as np x_norm = (x-np. min (x))/(np. max (x)-np. min (x))
Metodo 2: utilizzare Sklearn
from sklearn import preprocessing as pre x = x. reshape (-1, 1) x_norm = pre. MinMaxScaler (). fit_transform (x)
Entrambi i metodi presuppongono che x sia il nome dell’array NumPy che desideri normalizzare.
Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.
Esempio 1: normalizza i valori utilizzando NumPy
Supponiamo di avere il seguente array NumPy:
import numpy as np
#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])
Possiamo usare il seguente codice per normalizzare ogni valore nell’array compreso tra 0 e 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. ]
Ogni valore nell’array NumPy è stato normalizzato per essere compreso tra 0 e 1.
Ecco come ha funzionato:
Il valore minimo nel set di dati è 13 e il valore massimo è 71.
Per normalizzare il primo valore di 13 , applicheremmo la formula condivisa in precedenza:
- z i = (x i – min(x)) / (max(x) – min(x)) = (13 – 13) / (71 – 13) = 0
Per normalizzare il secondo valore di 16 , utilizzeremmo la stessa formula:
- z i = (x i – min(x)) / (max(x) – min(x)) = (16 – 13) / (71 – 13) = 0,0517
Per normalizzare il terzo valore di 19 , utilizzeremmo la stessa formula:
- z i = (x i – min(x)) / (max(x) – min(x)) = (19 – 13) / (71 – 13) = 0,1034
Usiamo questa stessa formula per normalizzare ciascun valore nell’array NumPy originale tra 0 e 1.
Esempio 2: normalizzare i valori utilizzando sklearn
Ancora una volta, supponiamo di avere il seguente array NumPy:
import numpy as np
#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])
Possiamo usare la funzione MinMaxScaler() di sklearn per normalizzare ogni valore nell’array compreso tra 0 e 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. ]]
Ogni valore nell’array NumPy è stato normalizzato per essere compreso tra 0 e 1.
Si noti che questi valori normalizzati corrispondono a quelli calcolati utilizzando il metodo precedente.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in NumPy:
Come ordinare gli elementi nell’array NumPy
Come rimuovere gli elementi duplicati dall’array NumPy
Come trovare il valore più frequente nell’array NumPy