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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *