numpy.ma.MaskedArray.var
-
MaskedArray.var(axis=None, dtype=None, out=None, ddof=0)[source] -
Вычислить дисперсию по указанной оси.
Возвращает дисперсию элементов массива, мера разброса распределения. Дисперсия вычисляется для сплющенного массива по умолчанию, в противном случае по указанной оси.
Параметры: a : array_like
Массив, содержащий числа, дисперсия которых требуется. Если
aне является массивом, производится попытка преобразования.axis : None или int или кортеж из целых чисел, необязательно
Ось или оси, по которым вычисляется дисперсия. По умолчанию вычисляется дисперсия сплющенного массива.
Если это кортеж целых чисел, дисперсия вычисляется по нескольким осям вместо одной оси или всех осей, как прежде.
dtype : тип данных, необязательно
Тип, используемый при вычислении дисперсии. Для массивов целого типа по умолчанию используется
float32; для массивов с плавающей точкой он такой же, как и тип массива.out : ndarray, необязательно
Альтернативный массив вывода, в котором следует поместить результат. Он должен иметь такую же форму, как ожидаемый результат, но тип преобразуется при необходимости.
ddof : int, необязательно
“Delta Degrees of Freedom”: делитель, используемый в расчёте, равен
N - ddof, гдеNпредставляет количество элементов. По умолчаниюddofравно нулю.keepdims : bool, необязательно
Если это установлено в True, оси, которые были уменьшены, сохраняются в результате в виде измерений с размером один. С этим параметром результат будет корректно транслироваться относительно исходного
arr.Возвращает: variance : ndarray, см. параметр dtype выше
Если
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
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.ma.MaskedArray.var.html