Numpy dizisindeki 0 ile 1 arasındaki değerler nasıl normalleştirilir?


Bir NumPy dizisinin değerlerini 0 ile 1 arasında normalleştirmek için aşağıdaki yöntemlerden birini kullanabilirsiniz:

Yöntem 1: NumPy’yi kullanın

 import numpy as np

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

Yöntem 2: Sklearn’i kullanın

 from sklearn import preprocessing as pre

x = x. reshape (-1, 1)

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

Her iki yöntem de x’in normalleştirmek istediğiniz NumPy dizisinin adı olduğunu varsayar.

Aşağıdaki örnekler her yöntemin pratikte nasıl kullanılacağını göstermektedir.

Örnek 1: NumPy kullanarak değerleri normalleştirin

Aşağıdaki NumPy dizisine sahip olduğumuzu varsayalım:

 import numpy as np

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

Dizideki her değeri 0 ile 1 arasında normalleştirmek için aşağıdaki kodu kullanabiliriz:

 #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. ]

NumPy dizisindeki her değer 0 ile 1 arasında olacak şekilde normalleştirildi.

İşte nasıl çalıştı:

Veri setindeki minimum değer 13, maksimum değer ise 71’dir.

13’ün ilk değerini normalleştirmek için daha önce paylaşılan formülü uygulayacağız:

  • z ben = (x ben – min(x)) / (maks(x) – min(x)) = (13 – 13) / (71 – 13) = 0

16’nın ikinci değerini normalleştirmek için aynı formülü kullanırız:

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

19’un üçüncü değerini normalleştirmek için aynı formülü kullanırız:

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

Orijinal NumPy dizisindeki her değeri 0 ile 1 arasında normalleştirmek için aynı formülü kullanırız.

Örnek 2: Sklearn kullanarak değerleri normalleştirin

Yine aşağıdaki NumPy dizisine sahip olduğumuzu varsayalım:

 import numpy as np

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

Dizideki her değeri 0 ile 1 arasında normalleştirmek için sklearn’in MinMaxScaler() işlevini kullanabiliriz:

 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. ]]

NumPy dizisindeki her değer 0 ile 1 arasında olacak şekilde normalleştirildi.

Bu normalleştirilmiş değerlerin önceki yöntem kullanılarak hesaplanan değerlerle eşleştiğini unutmayın.

Ek kaynaklar

Aşağıdaki eğitimler NumPy’de diğer genel görevlerin nasıl gerçekleştirileceğini açıklamaktadır:

NumPy dizisindeki öğeler nasıl sipariş edilir
NumPy dizisinden yinelenen öğeler nasıl kaldırılır
NumPy dizisinde en sık görülen değer nasıl bulunur?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir