numpy中的“isnotnan”function,这可以更pythonic?

我需要一个从数组中返回非NaN值的函数。 目前我正在这样做:

>>> a = np.array([np.nan, 1, 2]) >>> a array([ NaN, 1., 2.]) >>> np.invert(np.isnan(a)) array([False, True, True], dtype=bool) >>> a[np.invert(np.isnan(a))] array([ 1., 2.]) 

Python:2.6.4 numpy:1.3.0

请分享,如果你知道更好的方法,谢谢

 a = a[~np.isnan(a)] 

您目前正在testing任何不是NaN的东西,而mtrw有正确的方法来执行此操作。 如果你有兴趣testing有限数字(不是NaN,而不是INF),那么你不需要反演,可以使用:

 np.isfinite(a) 

更pythonic和原生,一个简单的阅读,往往当你想避免NaN你也想避免INF在我的经验。

只是以为我会把它扔给那里的人。