Как удалить значения nan из массива numpy (3 метода)
Вы можете использовать следующие методы для удаления значений NaN из массива NumPy:
Метод 1: используйте isnan()
new_data = data[~np. isnan (data)]
Способ 2: используйте isfinite()
new_data = data[np. isfinite (data)]
Способ 3: используйте логический_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 с помощью Logic_not()
Следующий код показывает, как удалить значения NaN из массива NumPy с помощью функции 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.]
Обратите внимание, что оба значения NaN были успешно удалены из массива NumPy.
Хотя этот метод эквивалентен двум предыдущим, он требует большего набора текста и поэтому используется не так часто.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в Python:
Pandas: как заменить пустые строки NaN
Pandas: как заменить значения NaN строкой