Функция nanvar
Функция nanvar вычисляет дисперсию элементов массива
по заданной оси, при этом значения NaN игнорируются.
Это аналог функции var, но устойчивый к пропускам в данных.
Первым параметром функция принимает массив, вторым параметром
можно указать ось для вычислений, третьим - параметры
ddof (смещение степени свободы) и keepdims.
Синтаксис
np.nanvar(arr, axis=None, dtype=None, out=None, ddof=0, keepdims=False)
Пример
Вычислим дисперсию одномерного массива с пропущенными значениями:
import numpy as np
arr = np.array([1.0, 2.0, np.nan, 4.0, 5.0])
res = np.nanvar(arr)
print(res)
Результат выполнения кода:
2.5
Пример
Сравним результат с обычной функцией var, которая возвращает
NaN при наличии пропусков:
import numpy as np
arr = np.array([1.0, 2.0, np.nan, 4.0, 5.0])
res_nanvar = np.nanvar(arr)
res_var = np.var(arr)
print("nanvar:", res_nanvar)
print("var:", res_var)
Результат выполнения кода:
"nanvar: 2.5"
"var: nan"
Пример
Вычислим дисперсию по строкам двумерного массива с пропусками:
import numpy as np
arr = np.array([[1.0, 2.0, np.nan],
[4.0, 5.0, 6.0],
[np.nan, 8.0, 9.0]])
res = np.nanvar(arr, axis=1)
print(res)
Результат выполнения кода:
[0.25 0.66666667 0.25]
Пример
Используем параметр ddof для вычисления несмещённой дисперсии
(выборочной дисперсии):
import numpy as np
arr = np.array([1.0, 2.0, np.nan, 4.0, 5.0])
res = np.nanvar(arr, ddof=1)
print(res)
Результат выполнения кода:
3.3333333333333335