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?