web-dev-qa-db-ja.com

numpyの「isnotnan」機能、これはもっと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

より良い方法を知っている場合は、共有してください、ありがとう

58
a = a[~np.isnan(a)]
109
mtrw

現在、NaN以外のものをテストしており、mtrwにはこれを行う正しい方法があります。有限数(NaNではなく、INFでもない)のテストに興味がある場合は、反転は不要で、以下を使用できます。

np.isfinite(a)

よりPythonicでネイティブで読みやすく、NaNを避けたい場合は、多くの場合、INFを避けてください。

私は人々のためにそこにそれを投げると思いました。

35