Como remover valores nan do array numpy (3 métodos)


Você pode usar os seguintes métodos para remover valores NaN de um array NumPy:

Método 1: use isnan()

 new_data = data[~np. isnan (data)]

Método 2: use isfinite()

 new_data = data[np. isfinite (data)]

Método 3: use logic_not()

 new_data = data[np. logical_not (np. isnan (data))]

Cada um desses métodos produz o mesmo resultado, mas o primeiro método é o mais curto para inserir e, portanto, tende a ser usado com mais frequência.

Os exemplos a seguir mostram como usar cada método na prática.

Exemplo 1: Remova valores NaN usando isnan()

O código a seguir mostra como remover valores NaN de um array NumPy usando a função isnan() :

 import numpy as np

#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])

#define new array of data with nan values removed
new_data = data[~np. isnan (data)]

#view new array
print (new_data)

[4. 6. 10. 11. 14. 19. 22.]

Observe que ambos os valores NaN foram removidos com sucesso do array NumPy.

Este método simplesmente mantém todos os elementos da matriz que não são valores (~)NaN.

Exemplo 2: Remova valores NaN usando isfinite()

O código a seguir mostra como remover valores NaN de um array NumPy usando a função isfinite() :

 import numpy as np

#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])

#define new array of data with nan values removed
new_data = data[np. isfinite (data)]

#view new array
print (new_data)

[4. 6. 10. 11. 14. 19. 22.]

Observe que ambos os valores NaN foram removidos com sucesso do array NumPy.

Este método simplesmente mantém todos os elementos do array que são valores finitos.

Como os valores de NaN não são finitos, eles são removidos da tabela.

Exemplo 3: Remova valores NaN usando logic_not()

O código a seguir mostra como remover valores NaN de um array NumPy usando a função logic_not() :

 import numpy as np

#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])

#define new array of data with nan values removed
new_data = data[np. logical_not (np. isnan (data))]
#view new array
print (new_data)

[4. 6. 10. 11. 14. 19. 22.]

Observe que ambos os valores NaN foram removidos com sucesso do array NumPy.

Embora este método seja equivalente aos dois anteriores, requer mais digitação e, portanto, não é usado com tanta frequência.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em Python:

Pandas: Como substituir strings vazias por NaN
Pandas: como substituir valores NaN por uma string

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *