Angenommen, ich konstruiere zwei Numpy-Arrays:
a = np.array([np.NaN, np.NaN])
b = np.array([np.NaN, np.NaN, 3])
Jetzt finde ich, dass np.mean
das nan
für beide zurückkehrt a
und b
:
>>> np.mean(a)
nan
>>> np.mean(b)
nan
Seit numpy 1.8 (veröffentlicht am 20. April 2016) sind wir mit nanmean gesegnet , das nan
Werte ignoriert :
>>> np.nanmean(b)
3.0
Wenn das Array jedoch nur nan
Werte enthält, wird eine Warnung ausgegeben:
>>> 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)
Ich mag es nicht, Warnungen zu unterdrücken. Gibt es eine bessere Funktion, mit der ich das Verhalten nanmean
ohne diese Warnung ermitteln kann?