Pregunta

I necesita una función que devuelve valores no NaN de una matriz. Actualmente estoy haciendo de esta manera:

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

Por favor, comparta si sabe una mejor manera, Gracias

¿Fue útil?

Solución

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

Otros consejos

En este momento está realizando una prueba de todo lo que no es NaN y MTRW tiene la forma correcta de hacer esto. Si usted está interesado en la prueba de los números finitos (no es NaN y no es INF), entonces usted no necesita una inversión y se puede utilizar:

np.isfinite(a)

Más Pythonic y nativa, una lectura fácil, y muchas veces cuando se quiere evitar NaN también desea evitar INF en mi experiencia.

Simplemente pensé que había que tirar hacia fuera allí para la gente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top