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.meandas nanfür beide zurückkehrt aund 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 nanWerte 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 nanmeanohne diese Warnung ermitteln kann?