numpy.var
-
numpy.var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=False)[source] -
Вычисление дисперсии по указанной оси.
Возвращает дисперсию элементов массива, мера разброса распределения. Дисперсия вычисляется для сплющенного массива по умолчанию, в противном случае по указанной оси.
Параметры: a : array_like
Массив, содержащий числа, для которых требуется дисперсия. Если
aне является массивом, выполняется попытка преобразования.axis : None или int или кортеж из целых чисел, необязательно
Ось или оси, по которым вычисляется дисперсия. По умолчанию вычисляется дисперсия сплющенного массива.
Если это кортеж целых чисел, дисперсия выполняется по нескольким осям вместо одной оси или всех осей, как раньше.
dtype : тип данных, необязательно
Тип, используемый при вычислении дисперсии. Для массивов целочисленного типа значение по умолчанию -
float32; для массивов с плавающей точкой - такой же, как тип массива.out : ndarray, необязательно
Альтернативный массив вывода, в который следует поместить результат. Он должен иметь такую же форму, как ожидаемый результат, но тип преобразуется при необходимости.
ddof : целое число, необязательно
«Дельта степеней свободы»: делитель, используемый при вычислении, равен
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.10.1/reference/generated/numpy.var.html