Spec-Zone.ru › NumPy 1.21

numpy.var

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

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

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

Параметры
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 of bool, optional

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

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

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

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

См. также

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

Замечания

Дисперсия — это среднее значение квадратов отклонений от среднего, т.е. 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.var.html

Spec-Zone.ru

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