Spec-Zone.ru › NumPy 1.18

numpy.ma.masked_array.var

метод

masked_array.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.18/reference/generated/numpy.ma.masked_array.var.html

Spec-Zone.ru

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