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