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

È stato utile?

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