numpy.nanvar
-
numpy.nanvar(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>)[source] -
Вычисление дисперсии по указанной оси, игнорируя значения NaN.
Возвращает дисперсию элементов массива, мера разброса распределения. Дисперсия вычисляется для уплощенного массива по умолчанию, иначе по указанной оси.
Для срезов, состоящих только из NaN, или срезов с нулевой степенью свободы, возвращается NaN и возникает
RuntimeWarning.Введено в версии 1.8.0.
Параметры: -
a : array_like -
Массив, содержащий числа, дисперсия которых требуется. Если
aне является массивом, попытка преобразования. -
axis : {int, tuple of int, None}, optional -
Ось или оси, по которым вычисляется дисперсия. По умолчанию вычисляется дисперсия уплощенного массива.
-
dtype : data-type, optional -
Тип, используемый при вычислении дисперсии. Для массивов целого типа по умолчанию используется
float32; для массивов с плавающей точкой – тот же тип, что и у массива. -
out : ndarray, optional -
Альтернативный массив вывода, в который поместить результат. Он должен иметь ту же форму, что и ожидаемый результат, но тип при необходимости преобразуется.
-
ddof : int, optional -
“Степень свободы дельты”: делитель, используемый при вычислении, равен
N - ddof, гдеNпредставляет количество элементов без NaN. По умолчаниюddofравно нулю. -
keepdims : bool, optional -
Если установлено в True, оси, которые были уменьшены, остаются в результате как размерности с размером один. С этим параметром результат будет правильно транслироваться по отношению к исходному
a.
Возвращает: -
variance : ndarray, see dtype parameter above -
Если
outравно None, возвращается новый массив, содержащий дисперсию; в противном случае возвращается ссылка на массив вывода. Если ddof больше или равен количеству элементов без NaN в срезе или срез содержит только NaN, то результат для этого среза – NaN.
См. также
-
numpy.doc.ufuncs - Раздел «Аргументы вывода»
Примечания
Дисперсия — это среднее значение квадратов отклонений от среднего, т.е.,
var = mean(abs(x - x.mean())**2).Среднее значение обычно вычисляется как
x.sum() / N, гдеN = len(x). Однако, еслиddofуказано, вместо этого используется делительN - ddof. В стандартной статистической практикеddof=1обеспечивает несмещённую оценку дисперсии гипотетической бесконечной генеральной совокупности.ddof=0обеспечивает оценку максимального правдоподобия дисперсии для нормально распределённых переменных.Обратите внимание, что для комплексных чисел перед возведением в квадрат берется абсолютное значение, поэтому результат всегда вещественный и неотрицательный.
Для входных данных с плавающей точкой дисперсия вычисляется с той же точностью, что и входные данные. В зависимости от входных данных это может привести к неточным результатам, особенно для
float32(см. пример ниже). Использование накопителя с большей точностью с помощью ключевого словаdtypeможет помочь решить эту проблему.Для работы этой функции над подклассами ndarray, они должны определить
sumс ключевым параметромkeepdimsПримеры
>>> a = np.array([[1, np.nan], [3, 4]]) >>> np.nanvar(a) 1.5555555555555554 >>> np.nanvar(a, axis=0) array([1., 0.]) >>> np.nanvar(a, axis=1) array([0., 0.25]) # may vary
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.nanvar.html