Як видалити значення 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 на рядок