Question

Je besoin d'une fonction qui renvoie des valeurs non NaN d'un tableau. Actuellement, je fais de cette façon:

>>> 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

S'il vous plaît part si vous connaissez une meilleure façon, Merci

Était-ce utile?

La solution

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

Autres conseils

Vous testez actuellement tout ce qui est pas NaN et MTRW a la bonne façon de le faire. Si vous êtes intéressé à tester pour les nombres finis (n'est pas NaN et n'est pas INF) alors vous n'avez pas besoin d'inversion et peut utiliser:

np.isfinite(a)

Plus pythonique et natif, d'une lecture facile, et souvent quand vous voulez éviter NaN vous voulez aussi éviter INF dans mon expérience.

Juste pensé que je toss que là-bas pour les gens.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top