Стандартизация массива NumPy - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь стандартизировать массив значений формы (M, N) так, чтобы его столбец имел среднее значение 0. Я думаю, что я правильно использовал формулу стандартизации, где x - случайная величина, а z - стандартизированная версия x. .

z = (x - среднее (x)) / std (x)

Но среднее значение столбца в результирующем массиве не равно 0. Они очень малычисло, но не ноль. Любое понимание моего недоразумения или ошибки приветствуется. Вот мой код:

import numpy as np

X = np.load('data/filename.npy').astype('float')
XNormed = (X - np.mean(X, axis=0))/np.std(X, axis=0)
column_mean = np.mean(XNormed, axis=0)
print(column_mean)

1 Ответ

0 голосов
/ 06 ноября 2019

Ваш код верен, но, как вы упомянули в формуле вашего собственного вопроса, вам нужно разделить на стандартное отклонение, а не на диапазон данных (как в вашем коде). Строка ниже, которая использует std () numpy, должна исправить это:

XNormed = (X - X.mean())/(X.std())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...