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, возвращает новый массив, содержащий дисперсию; в противном случае возвращается ссылка на выходной массив.
-
Примечания
Дисперсия — среднее значение квадратов отклонений от среднего, т. е.
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.MaskedArray.var.html