“Isnotnan” funzionalità in NumPy, può questo essere più divinatorio?
Domanda
Ho bisogno di una funzione che restituisce i valori non NaN da un array. Attualmente sto facendo in questo modo:
>>> 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
Si prega di condividere se si conosce un modo migliore, Grazie
Soluzione
a = a[~np.isnan(a)]
Altri suggerimenti
Ora sta testando per tutto ciò che non è Nan e MTRW ha il modo giusto per farlo. Se siete interessati a testare per i numeri finiti (non è Nan e non è INF), allora non hai bisogno di un'inversione e può utilizzare:
np.isfinite(a)
Più pythonic e nativa, una lettura facile, e spesso quando si vuole evitare NaN anche voi volete evitare INF nella mia esperienza.
Ho pensato di buttare quel là fuori per la gente.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow