Скажем, я построю два массива numpy:
a = np.array([np.NaN, np.NaN])
b = np.array([np.NaN, np.NaN, 3])
Теперь я обнаружил, что np.mean
возвращает nan
для a
и b
:
>>> np.mean(a)
nan
>>> np.mean(b)
nan
Так как numpy 1.8 (выпущено 20 апреля 2016 года), мы получили благословение nanmean
, которое игнорирует значения nan
:
>>> np.nanmean(b)
3.0
Однако, когда массив не имеет значений , но nan
, он вызывает предупреждение:
>>> np.nanmean(a)
nan
C:\python-3.4.3\lib\site-packages\numpy\lib\nanfunctions.py:598: RuntimeWarning: Mean of empty slice
warnings.warn("Mean of empty slice", RuntimeWarning)
Я не люблю подавлять предупреждения; есть ли более эффективная функция, которую я могу использовать для получения поведения nanmean
без этого предупреждения?