我需要一个函数,从一个数组返回非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)]

其他提示

您目前正在测试的东西,是不是楠mtrw必须做的正确方法。如果您有兴趣测试的有限数字(不楠是不是INF),那么你并不需要一个反转,并且可以使用:

np.isfinite(a)

更Python和本地,很容易看懂,而且往往当你想避免南你也想避免INF在我的经验。

只是想我会折腾的是那里的人。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top