Нормализация матрицы означает масштабирование значений таким образом, чтобы диапазон значений строки или столбца находился в диапазоне от 0 до 1.
Самый простой способ нормализовать значения матрицы NumPy — использовать функцию normalize() из пакета sklearn, которая использует следующий базовый синтаксис:
from sklearn. preprocessing import normalize
#normalize rows of matrix
normalize(x, axis= 1 , norm='l1')
#normalize columns of matrix
normalize(x, axis= 0 , norm='l1')
В следующих примерах показано, как использовать этот синтаксис на практике.
Пример 1: нормализовать строки матрицы NumPy
Предположим, у нас есть следующая матрица NumPy:
import numpy as np
#create matrix
x = np.arange (0, 36, 4). reshape (3,3)
#view matrix
print(x)
[[ 0 4 8]
[12 16 20]
[24 28 32]]
Следующий код показывает, как нормализовать строки матрицы NumPy:
from sklearn. preprocessing import normalize
#normalize matrix by rows
x_normed = normalize(x, axis= 1 , norm='l1')
#view normalized matrix
print(x_normed)
[[0. 0.33333333 0.66666667]
[0.25 0.33333333 0.41666667]
[0.28571429 0.33333333 0.38095238]]
Обратите внимание, что сумма значений в каждой строке теперь равна единице.
- Сумма первой строки: 0 + 0,33 + 0,67 = 1
- Сумма второй строки: 0,25 + 0,33 + 0,417 = 1
- Сумма третьего ряда: 0,2857 + 0,3333 + 0,3809 = 1
Пример 2: нормализовать столбцы матрицы NumPy
Предположим, у нас есть следующая матрица NumPy:
import numpy as np
#create matrix
x = np.arange (0, 36, 4). reshape (3,3)
#view matrix
print(x)
[[ 0 4 8]
[12 16 20]
[24 28 32]]
Следующий код показывает, как нормализовать строки матрицы NumPy:
from sklearn. preprocessing import normalize
#normalize matrix by columns
x_normed = normalize(x, axis= 0 , norm='l1')
#view normalized matrix
print(x_normed)
[[0. 0.08333333 0.13333333]
[0.33333333 0.33333333 0.33333333]
[0.66666667 0.58333333 0.53333333]]
Обратите внимание, что сумма значений в каждом столбце теперь равна единице.
- Сумма первого столбца: 0 + 0,33 + 0,67 = 1
- Сумма второго столбца: 0,083 + 0,333 + 0,583 = 1
- Сумма третьего столбца: 0,133 + 0,333 + 0,5333 = 1
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в Python:
Как нормализовать массивы в Python
Как нормализовать столбцы в Pandas DataFrame