Spec-Zone.ru › NumPy 1.10

numpy.ma.MaskedArray.var

MaskedArray.var(axis=None, dtype=None, out=None, ddof=0) [source]

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

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

Параметры:

a : array_like

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

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

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

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

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

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

out : ndarray, необязательно

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

ddof : целое число, необязательно

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

keepdims : bool, необязательно

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

Возвращает:

variance : ndarray, см. параметр dtype выше

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

См. также

std, mean, nanmean, nanstd, nanvar

numpy.doc.ufuncs
Раздел «Аргументы вывода»

Примечания

Дисперсия — среднее значение квадратов отклонений от среднего, т.е. var = mean(abs(x - x.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
>>> ((1-0.55)**2 + (0.1-0.55)**2)/2
0.2025

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.ma.MaskedArray.var.html

Spec-Zone.ru

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