Jak usunąć wartości nan z tablicy numpy (3 metody)


Aby usunąć wartości NaN z tablicy NumPy, możesz użyć następujących metod:

Metoda 1: Użyj isnan()

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

Metoda 2: Użyj funkcji isfinite()

 new_data = data[np. isfinite (data)]

Metoda 3: Użyj logicznej not()

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

Każda z tych metod daje ten sam wynik, ale wprowadzenie pierwszej metody jest najkrótsze i dlatego jest najczęściej używane.

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Przykład 1: Usuń wartości NaN za pomocą isnan()

Poniższy kod pokazuje jak usunąć wartości NaN z tablicy NumPy za pomocą funkcji 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.]

Zauważ, że obie wartości NaN zostały pomyślnie usunięte z tablicy NumPy.

Ta metoda po prostu zachowuje wszystkie elementy tablicy, które nie są wartościami (~)NaN.

Przykład 2: Usuń wartości NaN za pomocą isfinite()

Poniższy kod pokazuje jak usunąć wartości NaN z tablicy NumPy za pomocą funkcji 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.]

Zauważ, że obie wartości NaN zostały pomyślnie usunięte z tablicy NumPy.

Ta metoda po prostu zachowuje wszystkie elementy tablicy, które mają wartości skończone.

Ponieważ wartości NaN nie są skończone, są one usuwane z tabeli.

Przykład 3: Usuń wartości NaN za pomocą logic_not()

Poniższy kod pokazuje jak usunąć wartości NaN z tablicy NumPy za pomocą funkcji 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.]

Zauważ, że obie wartości NaN zostały pomyślnie usunięte z tablicy NumPy.

Chociaż ta metoda jest równoważna dwóm poprzednim, wymaga więcej pisania i dlatego nie jest używana tak często.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w Pythonie:

Pandy: Jak zastąpić puste ciągi znaków NaN
Pandy: jak zastąpić wartości NaN ciągiem znaków

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *