numpy.ma.MaskedArray.var
метод
-
MaskedArray.var(axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>)[source] -
Вычисление дисперсии по указанной оси.
Возвращает дисперсию элементов массива, мера разброса распределения. Дисперсия вычисляется для уплощенного массива по умолчанию, иначе по указанной оси.
Параметры: -
a : array_like -
Массив, содержащий числа, дисперсия которых требуется. Если
aне является массивом, производится попытка преобразования. -
axis : None or int or tuple of ints, optional -
Ось или оси, по которым вычисляется дисперсия. По умолчанию вычисляется дисперсия уплощенного массива.
Введено в версии 1.7.0.
Если это кортеж целых чисел, дисперсия вычисляется по нескольким осям вместо одной оси или всех осей, как раньше.
-
dtype : data-type, optional -
Тип, используемый при вычислении дисперсии. Для массивов целого типа по умолчанию используется
float32; для массивов с плавающей точкой – тот же тип, что и в массиве. -
out : ndarray, optional -
Альтернативный выходной массив, в который помещается результат. Он должен иметь такую же форму, как ожидаемый результат, но тип преобразуется при необходимости.
-
ddof : int, optional -
“Степень свободы дельта”: делитель, используемый при вычислении, равен
N - ddof, гдеNпредставляет количество элементов. По умолчаниюddofравно нулю. -
keepdims : bool, optional -
Если установлено в True, оси, по которым выполнено сокращение, остаются в результате как измерения с размером один. С этим вариантом результат будет правильно транслироваться относительно входного массива.
Если передано значение по умолчанию, то
keepdimsне будет передано методуvarподклассовndarray, однако любое нестандартное значение будет. Если метод подкласса не реализуетkeepdims, будут подняты исключения.
Возвращает: -
variance : ndarray, 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 >>> ((1-0.55)**2 + (0.1-0.55)**2)/2 0.2025
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.16.1/reference/generated/numpy.ma.MaskedArray.var.html