numpy.ma.std
-
numpy.ma.std(self, axis=None, dtype=None, out=None, ddof=0) = -
Вычисление стандартного отклонения по заданной оси.
Возвращает стандартное отклонение, меру разброса распределения, элементов массива. Стандартное отклонение вычисляется для уплощенного массива по умолчанию, в противном случае — по указанной оси.
Параметры: a : array_like
Вычислить стандартное отклонение этих значений.
axis : None или int или кортеж из целых чисел, необязательно
Ось или оси, по которым вычисляется стандартное отклонение. По умолчанию вычисляется стандартное отклонение уплощенного массива.
Если это кортеж из целых чисел, стандартное отклонение вычисляется по нескольким осям, а не по одной оси или всем осям, как раньше.
dtype : dtype, необязательно
Тип, используемый при вычислении стандартного отклонения. Для массивов целочисленного типа по умолчанию используется float64, для массивов плавающей точки — такой же, как тип массива.
out : ndarray, необязательно
Альтернативный выходной массив, в который следует поместить результат. Он должен иметь такую же форму, как ожидаемый результат, но тип (вычисленных значений) будет преобразован при необходимости.
ddof : int, необязательно
Означает Delta Degrees of Freedom. Разделитель, используемый в расчетах, равен
N - ddof, гдеNпредставляет количество элементов. По умолчаниюddofравно нулю.keepdims : bool, необязательно
Если это установлено в True, оси, которые были уменьшены, остаются в результате как измерения с размером один. С этим параметром результат будет правильно транслироваться относительно исходного
arr.Возвращает: standard_deviation : ndarray, см. параметр dtype выше.
Если
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
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.ma.std.html