Как нормализовать в numpy?

avatar
Jurca Bg
1 июля 2021 в 20:13
162
2
0

У меня есть следующий вопрос: Массив numpy Y формы (N, M), где Y[i] содержит те же данные, что и X[i], но нормализованные, чтобы иметь среднее значение 0 и стандартное отклонение 1. Я сопоставил массив следующим образом:

(X - np.mean(X)) / np.std(X) 

но это не дает мне правильного ответа.

Источник

Ответы (2)

avatar
Gaston
1 июля 2021 в 20:25
0

Использовать норму от linalg

https://numpy.org/doc/stable/reference/generated/numpy.linalg.norm.html

from numpy import linalg as LA

a = np.arange(9) - 4

LA.norm(a)
>>>7.745966692414834

Затем вы делите массив по норме:

a/LA.norm(a)
Jurca Bg
1 июля 2021 в 20:29
0

Это все еще не нормально.

avatar
ShlomiF
1 июля 2021 в 20:19
2

Вы хотите нормализовать по определенному измерению, например -

(X - np.mean(X, axis=0)) / np.std(X, axis=0) 

В противном случае вы вычисляете статистику по всей матрице, т.е. вычитаете глобальное среднее значение всех точек/признаков и то же самое со стандартным отклонением.

Jurca Bg
1 июля 2021 в 20:21
0

Я думаю, что я должен абстрагироваться от того, что это многомерный вектор, и рассматривать его как простой вектор.