Spec-Zone.ru › NumPy 1.13

numpy.ma.MaskedArray.var

MaskedArray.var(axis=None, dtype=None, out=None, ddof=0, keepdims=<class numpy._globals._NoValue>) [source]

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

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

Параметры:

a : array_like

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает:

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–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.ma.MaskedArray.var.html

Spec-Zone.ru

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