Spec-Zone.ru › NumPy 1.21

numpy.ma.var

ma.var(self, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>) = <numpy.ma.core._frommethod object>

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

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

Parameters
aarray_like

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

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

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

Введено в версии 1.7.0.

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

dtypeтип данных, необязательно

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

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

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

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

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

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

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

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

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

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

Введено в версии 1.20.0.

Returns
variancendarray, см. параметр dtype выше

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

См. также

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

Notes

Дисперсия — это среднее квадратичных отклонений от среднего, т. е. var = mean(x), где x = abs(a - a.mean())**2.

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

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

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

Примеры

>>> a = np.array([[1, 2], [3, 4]])
>>> np.var(a)
1.25
>>> np.var(a, axis=0)
array([1.,  1.])
>>> np.var(a, axis=1)
array([0.25,  0.25])

В одинарной точности var() может быть неточной:

>>> a = np.zeros((2, 512*512), dtype=np.float32)
>>> a[0, :] = 1.0
>>> a[1, :] = 0.1
>>> np.var(a)
0.20250003

Вычисление дисперсии в float64 более точно:

>>> np.var(a, dtype=np.float64)
0.20249999932944759 # may vary
>>> ((1-0.55)**2 + (0.1-0.55)**2)/2
0.2025

Задавать аргумент where:

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

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

Spec-Zone.ru

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