Як видалити значення nan з масиву numpy (3 методи)


Ви можете використовувати наступні методи, щоб видалити значення NaN з масиву NumPy:

Спосіб 1: Використовуйте isnan()

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

Спосіб 2: Використовуйте isfinite()

 new_data = data[np. isfinite (data)]

Спосіб 3: Використовуйте logical_not()

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

Кожен із цих методів дає однаковий результат, але перший метод є найкоротшим для введення, і тому він використовується найчастіше.

Наступні приклади показують, як використовувати кожен метод на практиці.

Приклад 1: Видалення значень NaN за допомогою isnan()

Наступний код показує, як видалити значення NaN з масиву NumPy за допомогою функції 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.]

Зверніть увагу, що обидва значення NaN були успішно видалені з масиву NumPy.

Цей метод просто зберігає всі елементи масиву, які не є значеннями (~)NaN.

Приклад 2: видалення значень NaN за допомогою isfinite()

Наступний код показує, як видалити значення NaN з масиву NumPy за допомогою функції 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.]

Зверніть увагу, що обидва значення NaN були успішно видалені з масиву NumPy.

Цей метод просто зберігає всі елементи масиву, які є кінцевими значеннями.

Оскільки значення NaN не є кінцевими, вони видаляються з таблиці.

Приклад 3: видалення значень NaN за допомогою logical_not()

Наступний код показує, як видалити значення NaN з масиву NumPy за допомогою функції logical_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.]

Зверніть увагу, що обидва значення NaN були успішно видалені з масиву NumPy.

Незважаючи на те, що цей метод еквівалентний попереднім двом, він вимагає більше введення тексту, тому використовується не так часто.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в Python:

Pandas: Як замінити порожні рядки на NaN
Pandas: як замінити значення NaN на рядок

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *