[Python-es] Ignorar Datos Nulos/Vacíos

Jose Sabater Montes jsm en iaa.es
Mie Oct 5 12:19:03 CEST 2011


On Tuesday 04 October 2011 19:14:23 Juan Camilo Hernandez D wrote:
> Gracias Marcos por la respuesta.
> 
> Termine convirtiendo todos estos datos Nulos a NaN, pero ahora me ha
> surgido la siguiente duda:
> 
> Existe alguna función que me permita contar el numero de datos NaN que
> tengo en un array?

Hola,

Con la función numpy.isnan puedes probar que elementos son NaN. Como devuelve 
un array booleano puedes obtener los índices con numpy.where y contar aquí (el 
número de elementos del primer array de índices que devuelve) o tras aplicar 
el resultado al array.

Ejemplo:
>>> a = numpy.array([1,1,1,numpy.NAN,numpy.NAN])
>>> numpy.isnan(a)
array([False, False, False,  True,  True], dtype=bool)
>>> numpy.where(numpy.isnan(a))
(array([3, 4]),)
>>> len(numpy.where(numpy.isnan(a))[0])
2
>>> a[numpy.where(numpy.isnan(a))]
array([ NaN,  NaN])
>>> len(a[numpy.where(numpy.isnan(a))])
2

Un saludo,
Pepe





Más información sobre la lista de distribución Python-es