Frage

ich brauche eine Funktion, dass die Renditen nicht-NaN-Werte aus einem Array. Ich kann es auf diese Weise zur Zeit tue:

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

Bitte teilen, wenn Sie einen besseren Weg wissen, Danke

War es hilfreich?

Lösung

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

Andere Tipps

Sie testen derzeit für alles, was nicht NaN ist und MTRW hat den richtigen Weg, dies zu tun. Wenn Sie bei der Prüfung für die endlichen Zahlen interessiert (nicht NaN und ist nicht INF), dann brauchen Sie keine Inversion und verwenden können:

np.isfinite(a)

Weitere pythonic und nativem, leicht zu lesen, und oft, wenn Sie wollen NaN vermeiden wollen Sie auch INF in meiner Erfahrung zu vermeiden.

Nur dachte ich, dass da draußen für Leute werfen würde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top