En este artículo, vamos a aprender cómo eliminar los valores de Nan de una array determinada. Los valores de man son aquellos valores que no tienen un valor específico asociado o son diferentes del tipo de valores que se utilizarán en la array declarada.
Básicamente, hay dos enfoques que funcionan de la misma manera, solo con una ligera diferencia en la sintaxis. O podríamos usar una función especificada en NumPy o podríamos usar un operador, el funcionamiento básico será el mismo.
Método #1: Usar las funciones numpy.logical_not() y numpy.nan()
El numpy.isnan() dará índices verdaderos para todos los índices donde el valor es nan y cuando se combina con la función numpy.logical_not(), los valores booleanos se invertirán. Entonces, al final, obtenemos índices para todos los elementos que no son nan. De los índices, podemos filtrar los valores que no son nan y guardarlos en otra array.
Python3
import numpy # create a 1D array a = numpy.array([5, 2, 8, 9, 3, numpy.nan, 2, 6, 1, numpy.nan]) # remove nan values using numpy.isnan() # and numpy.logical_not b = a[numpy.logical_not(numpy.isnan(a))] # print the results print("original 1D array ->", a) print("1D array after removing nan values ->", b) print() # create a 2D array c = numpy.array([[6, 2, numpy.nan], [2, 6, 1], [numpy.nan, 1, numpy.nan]]) # remove nan values using numpy.isnan() # and numpy.logical_not d = c[numpy.logical_not(numpy.isnan(c))] # print the results print("Original 2D array ->") print(c) print("2D array converted to 1D after removing nan values ", d)
Producción:
Nota: No importa cuál sea la dimensión de la array, se aplanará en una array 1D
Método #2: combinar el operador ~ en lugar de numpy.logical_not() con la función numpy.isnan(). Esto funcionará de la misma manera que el anterior, convertirá cualquier array de dimensiones en una array 1D.
En el siguiente código, solo se muestra la array 2D, por ejemplo.
Python3
import numpy # create a 2D array c = numpy.array([[12, 5, numpy.nan, 7], [2, 61, 1, numpy.nan], [numpy.nan, 1, numpy.nan, 5]]) # remove nan values using numpy.isnan() # and numpy.logical_not d = c[~(numpy.isnan(c))] # print the results print("Original 2D array ") print(c) print() print("2D array converted to 1D after removing nan values ") print(d)
Producción:
Publicación traducida automáticamente
Artículo escrito por KaranGupta5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA