Spec-Zone.ru › NumPy 1.21

numpy.std

numpy.std(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>, *, where=<no value>)[source]

Вычисление стандартного отклонения по указанной оси.

Возвращает стандартное отклонение, меру разброса распределения, элементов массива. Стандартное отклонение вычисляется для сплющенного массива по умолчанию, иначе по указанной оси.

Параметры
aarray_like

Вычислить стандартное отклонение этих значений.

axisNone или int или кортеж из целых чисел, необязательно

Ось или оси, по которым вычисляется стандартное отклонение. По умолчанию вычисляется стандартное отклонение сплющенного массива.

Новое в версии 1.7.0.

Если это кортеж из целых чисел, то стандартное отклонение вычисляется по нескольким осям, вместо одной оси или всех осей, как раньше.

dtypedtype, необязательно

Тип, используемый при вычислении стандартного отклонения. Для массивов целочисленного типа по умолчанию используется float64, для массивов с плавающей точкой — тот же тип, что и у массива.

outndarray, необязательно

Альтернативный выходной массив, в который следует поместить результат. Он должен иметь ту же форму, что и ожидаемый результат, но тип (вычисленных значений) будет преобразован при необходимости.

ddofint, необязательно

Обозначает Delta Degrees of Freedom. Знаменатель, используемый в расчетах, равен N - ddof, где N представляет количество элементов. По умолчанию ddof равно нулю.

keepdimsbool, необязательно

Если это True, оси, по которым производилось сокращение, остаются в результате в качестве измерений с размером один. С этим параметром результат будет корректно транслироваться относительно входного массива.

Если передано значение по умолчанию, то keepdims не будет передано в метод std подклассов ndarray, однако любое отличное от значения по умолчанию будет. Если метод подкласса не реализует keepdims, будут подняты исключения.

wherearray_like из bool, необязательно

Элементы, которые нужно включить в стандартное отклонение. Подробности см. в reduce.

Новое в версии 1.20.0.

Возвращает
standard_deviationndarray, см. параметр dtype выше.

Если out равно None, возвращается новый массив, содержащий стандартное отклонение, в противном случае возвращается ссылка на выходной массив.

См. также

var, mean, nanmean, nanstd, nanvar
Определение типа выходных данных

Примечания

Стандартное отклонение — это квадратный корень из среднего значения квадратов отклонений от среднего значения, т. е. std = sqrt(mean(x)), где x = abs(a - a.mean())**2.

Среднее значение квадрата отклонения обычно вычисляется как x.sum() / N, где N = len(x). Однако, если указано ddof, используется делитель N - ddof. В стандартной статистической практике ddof=1 обеспечивает несмещенную оценку дисперсии бесконечной генеральной совокупности. ddof=0 обеспечивает оценку максимального правдоподобия дисперсии для нормально распределенных переменных. Стандартное отклонение, вычисленное в этой функции, является квадратным корнем из оценочной дисперсии, поэтому даже при ddof=1, это не будет несмещенной оценкой стандартного отклонения.

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

Для входных данных с плавающей точкой стандартное отклонение вычисляется с той же точностью, что и входные данные. В зависимости от входных данных это может привести к неточным результатам, особенно для float32 (см. пример ниже). Использование аккумулятора с большей точностью с помощью ключа dtype может решить эту проблему.

Примеры

>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> 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 # may vary

Указание аргумента where:

>>> a = np.array([[14, 8, 11, 10], [7, 9, 10, 11], [10, 15, 5, 10]])
>>> np.std(a)
2.614064523559687 # may vary
>>> np.std(a, where=[[True], [True], [False]])
2.0

© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.std.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API