Як нормалізувати значення в масиві numpy між 0 і 1


Щоб нормалізувати значення масиву NumPy між 0 і 1, ви можете скористатися одним із таких методів:

Спосіб 1: Використовуйте NumPy

 import numpy as np

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

Спосіб 2: Використовуйте Sklearn

 from sklearn import preprocessing as pre

x = x. reshape (-1, 1)

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

Обидва методи припускають, що x — це ім’я масиву NumPy, який потрібно нормалізувати.

Наступні приклади показують, як використовувати кожен метод на практиці.

Приклад 1: нормалізуйте значення за допомогою NumPy

Припустимо, у нас є наступний масив NumPy:

 import numpy as np

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

Ми можемо використати такий код, щоб нормалізувати кожне значення в масиві між 0 і 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. ]

Кожне значення в масиві NumPy було нормалізовано таким чином, щоб воно було між 0 і 1.

Ось як це працювало:

Мінімальне значення в наборі даних – 13, а максимальне – 71.

Щоб нормалізувати перше значення 13 , ми б застосували формулу, наведену раніше:

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

Щоб нормалізувати друге значення 16 , ми використаємо ту саму формулу:

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

Щоб нормалізувати третє значення 19 , ми використаємо ту саму формулу:

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

Ми використовуємо ту саму формулу, щоб нормалізувати кожне значення у вихідному масиві NumPy між 0 і 1.

Приклад 2: Нормалізація значень за допомогою sklearn

Знову припустімо, що ми маємо наступний масив NumPy:

 import numpy as np

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

Ми можемо використати функцію MinMaxScaler() sklearn , щоб нормалізувати кожне значення в масиві між 0 і 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. ]]

Кожне значення в масиві NumPy було нормалізовано таким чином, щоб воно було між 0 і 1.

Зверніть увагу, що ці нормовані значення збігаються з розрахованими за попереднім методом.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в NumPy:

Як упорядкувати елементи в масиві NumPy
Як видалити повторювані елементи з масиву NumPy
Як знайти найбільш часте значення в масиві NumPy

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *