Spec-Zone.ru › NumPy 1.19

numpy.ma.MaskedArray.var

метод

MaskedArray.var(self, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>) [source]

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

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

Параметры
aarray_like

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

axisNone or int or tuple of ints, optional

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

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

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

dtypedata-type, optional

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

outndarray, optional

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

ddofint, optional

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

keepdimsbool, optional

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

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

Возвращает
variancendarray, see dtype parameter above

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

См. также

std, mean, nanmean, nanstd, nanvar, ufuncs-output-type

Примечания

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

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

Spec-Zone.ru

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