Cara menormalkan nilai dalam array numpy antara 0 dan 1
Untuk menormalkan nilai array NumPy antara 0 dan 1, Anda dapat menggunakan salah satu metode berikut:
Metode 1: Gunakan NumPy
import numpy as np x_norm = (x-np. min (x))/(np. max (x)-np. min (x))
Metode 2: Gunakan Sklearn
from sklearn import preprocessing as pre x = x. reshape (-1, 1) x_norm = pre. MinMaxScaler (). fit_transform (x)
Kedua metode tersebut berasumsi bahwa x adalah nama array NumPy yang ingin Anda normalkan.
Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik.
Contoh 1: Normalisasikan nilai menggunakan NumPy
Misalkan kita memiliki array NumPy berikut:
import numpy as np
#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])
Kita dapat menggunakan kode berikut untuk menormalkan setiap nilai dalam array antara 0 dan 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. ]
Setiap nilai dalam array NumPy telah dinormalisasi menjadi antara 0 dan 1.
Begini cara kerjanya:
Nilai minimum pada dataset adalah 13 dan nilai maksimum adalah 71.
Untuk menormalkan nilai pertama 13 , kami akan menerapkan rumus yang dibagikan sebelumnya:
- z i = ( xi – menit(x)) / (maks(x) – menit(x)) = (13 – 13) / (71 – 13) = 0
Untuk menormalkan nilai kedua dari 16 , kita akan menggunakan rumus yang sama:
- z i = ( xi – menit(x)) / (maks(x) – menit(x)) = (16 – 13) / (71 – 13) = 0,0517
Untuk menormalkan nilai ketiga dari 19 , kita akan menggunakan rumus yang sama:
- z i = ( xi – menit(x)) / (maks(x) – menit(x)) = (19 – 13) / (71 – 13) = 0,1034
Kami menggunakan rumus yang sama untuk menormalkan setiap nilai dalam array NumPy asli antara 0 dan 1.
Contoh 2: Normalisasikan nilai menggunakan sklearn
Sekali lagi, misalkan kita memiliki array NumPy berikut:
import numpy as np
#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])
Kita dapat menggunakan fungsi MinMaxScaler() sklearn untuk menormalkan setiap nilai dalam array antara 0 dan 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. ]]
Setiap nilai dalam array NumPy telah dinormalisasi menjadi antara 0 dan 1.
Perhatikan bahwa nilai yang dinormalisasi ini cocok dengan nilai yang dihitung menggunakan metode sebelumnya.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di NumPy:
Cara mengurutkan elemen dalam array NumPy
Cara menghapus elemen duplikat dari array NumPy
Cara menemukan nilai paling sering dalam array NumPy