Jak znormalizować wartości w tablicy numpy pomiędzy 0 a 1


Aby znormalizować wartości tablicy NumPy w zakresie od 0 do 1, możesz użyć jednej z następujących metod:

Metoda 1: Użyj NumPy

 import numpy as np

x_norm = (x-np. min (x))/(np. max (x)-np. min (x))

Metoda 2: Użyj Sklearna

 from sklearn import preprocessing as pre

x = x. reshape (-1, 1)

x_norm = pre. MinMaxScaler (). fit_transform (x)

Obie metody zakładają, że x jest nazwą tablicy NumPy, którą chcesz znormalizować.

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Przykład 1: Normalizuj wartości za pomocą NumPy

Załóżmy, że mamy następującą tablicę NumPy:

 import numpy as np

#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])

Możemy użyć następującego kodu, aby znormalizować każdą wartość w tablicy od 0 do 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. ]

Każda wartość w tablicy NumPy została znormalizowana tak, aby zawierała się w przedziale od 0 do 1.

Oto jak to działało:

Minimalna wartość w zbiorze danych to 13, a maksymalna wartość to 71.

Aby znormalizować pierwszą wartość 13 , zastosowalibyśmy udostępnioną wcześniej formułę:

  • z i = (x i – min(x)) / (max(x) – min(x)) = (13 – 13) / (71 – 13) = 0

Aby znormalizować drugą wartość 16 , użylibyśmy tego samego wzoru:

  • z i = (x i – min(x)) / (max(x) – min(x)) = (16 – 13) / (71 – 13) = 0,0517

Aby znormalizować trzecią wartość 19 , użylibyśmy tego samego wzoru:

  • z i = (x i – min(x)) / (max(x) – min(x)) = (19 – 13) / (71 – 13) = 0,1034

Używamy tej samej formuły do normalizacji każdej wartości w oryginalnej tablicy NumPy w zakresie od 0 do 1.

Przykład 2: Normalizuj wartości za pomocą sklearn

Załóżmy ponownie, że mamy następującą tablicę NumPy:

 import numpy as np

#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])

Możemy użyć funkcji MinMaxScaler() sklearn , aby znormalizować każdą wartość w tablicy od 0 do 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. ]]

Każda wartość w tablicy NumPy została znormalizowana tak, aby zawierała się w przedziale od 0 do 1.

Należy pamiętać, że te znormalizowane wartości odpowiadają wartościom obliczonym przy użyciu poprzedniej metody.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w NumPy:

Jak zamówić elementy w tablicy NumPy
Jak usunąć zduplikowane elementy z tablicy NumPy
Jak znaleźć najczęstszą wartość w tablicy NumPy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *