J'ai besoin d'une fonction qui renvoie des valeurs non NaN à partir d'un tableau. Actuellement, je le 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
Veuillez partager si vous connaissez une meilleure façon, merci
a = a[~np.isnan(a)]
Vous testez actuellement tout ce qui n'est pas NaN et mtrw a la bonne façon de le faire. Si vous êtes intéressé à tester des nombres finis (ce n'est pas NaN et ce n'est pas INF), vous n'avez pas besoin d'une inversion et vous pouvez utiliser:
np.isfinite(a)
Plus Pythonic et natif, une lecture facile, et souvent lorsque vous voulez éviter NaN, vous voulez également éviter INF selon mon expérience.
Je pensais juste que je jetterais ça là-bas pour les gens.