Как нормализовать значения в массиве 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *