Вот мой код:Стандартное отклонение в Numpy
import numpy as np
print(np.std(np.array([0,1])))
производит 0.5
Я уверен, что это неправильно. Что я делаю не так?
Вот мой код:Стандартное отклонение в Numpy
import numpy as np
print(np.std(np.array([0,1])))
производит 0.5
Я уверен, что это неправильно. Что я делаю не так?
По умолчанию numpy.std
возвращает стандартное отклонение населения, и в этом случае np.std([0,1])
правильно сообщается как 0.5
. Если вы ищете стандартное отклонение выборки, вы можете поставить дополнительный ddof
параметр для std()
:
>>> np.std([0, 1], ddof=1)
0.70710678118654757
ddof
изменяет делитель суммы квадратов образцов-минус-среднего. Делитель равен N - ddof
, где по умолчанию ddof
равен 0
, как вы можете видеть из вашего результата.
Я думаю, что по умолчанию numpy является стандартным отклонением «население», которое равно N, а стандартное отклонение выборки - N-1. – user1700890
Я признаю, что моя терминология может быть обратной. –
Исправлено. Спасибо за исправление. –
Это правильно. 'std = RMS (среднее значение)'. В этом случае: 'std = sqrt ((0,5^2 + 0,5^2)/2) = sqrt (0,25) = 0,5' –
@MadPhysicist, спасибо, я просто немного смутился с образцом и популяцией std. В таблице Google используется стандартное отклонение образца по стандарту stdev. – user1700890
Установите дополнительный параметр 'ddof' в' 1', чтобы получить информацию о численности населения: http://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html –