numpy.std
-
numpy.std(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>)[source] -
Вычислить стандартное отклонение по указанной оси.
Возвращает стандартное отклонение, меру разброса распределения, элементов массива. Стандартное отклонение вычисляется для сплющенного массива по умолчанию, в противном случае по указанной оси.
Параметры: -
a : array_like -
Вычислить стандартное отклонение этих значений.
-
axis : None or int or tuple of ints, optional -
Ось или оси, по которым вычисляется стандартное отклонение. По умолчанию вычисляется стандартное отклонение сплющенного массива.
New in version 1.7.0.
Если это кортеж из целых чисел, выполняется стандартное отклонение по нескольким осям, а не по одной оси или всем осям, как раньше.
-
dtype : dtype, optional -
Тип, используемый при вычислении стандартного отклонения. Для массивов целого типа значение по умолчанию — float64, для массивов плавающей точки — такой же, как тип массива.
-
out : ndarray, optional -
Альтернативный массив вывода, в который следует поместить результат. Он должен иметь такую же форму, как ожидаемый результат, но тип (вычисленных значений) будет преобразован при необходимости.
-
ddof : int, optional -
Означает степени свободы. Делитель, используемый в расчетах, равен
N - ddof, гдеN— количество элементов. По умолчаниюddofравно нулю. -
keepdims : bool, optional -
Если это установлено в True, оси, которые уменьшаются, остаются в результате как измерения с размером один. С этим параметром результат будет корректно транслироваться по отношению к входному массиву.
Если передано значение по умолчанию, то
keepdimsне будет передано в методstdподклассовndarray, однако любое отличное от значения по умолчанию значение будет. Если метод подкласса не реализуетkeepdims, будут подняты исключения.
Возвращает: -
standard_deviation : ndarray, see dtype parameter above. -
Если
outравно None, возвращает новый массив, содержащий стандартное отклонение, в противном случае возвращает ссылку на массив вывода.
Примечания
Стандартное отклонение — это квадратный корень из среднего значения квадратов отклонений от среднего значения, т.е.
std = sqrt(mean(abs(x - x.mean())**2)).Среднее значение квадрата отклонения обычно вычисляется как
x.sum() / N, гдеN = len(x). Однако если заданоddof, в качестве делителя используетсяN - ddof. В стандартной статистической практикеddof=1обеспечивает несмещённую оценку дисперсии бесконечной совокупности.ddof=0обеспечивает оценку максимального правдоподобия дисперсии для нормально распределённых переменных. Стандартное отклонение, вычисляемое в этой функции, является квадратным корнем из оценочной дисперсии, поэтому даже сddof=1, это не будет несмещённой оценкой стандартного отклонения.Обратите внимание, что для комплексных чисел
stdберёт абсолютное значение перед возведением в квадрат, так что результат всегда вещественный и неотрицательный.Для чисел с плавающей точкой std вычисляется с той же точностью, что и у входных данных. В зависимости от входных данных это может привести к неточности результатов, особенно для float32 (см. пример ниже). Использование накопителя с большей точностью с помощью ключевого слова
dtypeможет решить эту проблему.Примеры
>>> a = np.array([[1, 2], [3, 4]]) >>> np.std(a) 1.1180339887498949 >>> np.std(a, axis=0) array([ 1., 1.]) >>> np.std(a, axis=1) array([ 0.5, 0.5])
В одинарной точности std() может быть неточным:
>>> a = np.zeros((2, 512*512), dtype=np.float32) >>> a[0, :] = 1.0 >>> a[1, :] = 0.1 >>> np.std(a) 0.45000005
Вычисление стандартного отклонения в float64 более точно:
>>> np.std(a, dtype=np.float64) 0.44999999925494177
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.std.html