Как удалить значения 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 строкой

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.