Обработка пропущенных значений в числовых массивах: подробное руководство по использованию Numpy

Numpy – популярная библиотека Python, используемая для научных вычислений и анализа данных. Термин «nan» означает «Не число» и представляет собой специальное значение с плавающей запятой, определенное numpy. Он используется для представления отсутствующих или неопределенных значений в числовых массивах. В этой статье блога мы рассмотрим различные методы в numpy для работы со значениями nan.

Метод 1: проверка значений nan
Функция isnan() в numpy может использоваться для проверки того, является ли элемент nan или нет. Вот пример:

import numpy as np
arr = np.array([1, np.nan, 2, np.nan, 3])
print(np.isnan(arr))  # [False  True False  True False]

Метод 2: подсчет значений nan
Функция sum() может использоваться вместе с isnan() для подсчета количества значений nan в массиве:

import numpy as np
arr = np.array([1, np.nan, 2, np.nan, 3])
print(np.isnan(arr).sum())  # 2

Метод 3: удаление значений nan
Функция isnan() также может использоваться для создания маски для удаления значений nan из массива:

import numpy as np
arr = np.array([1, np.nan, 2, np.nan, 3])
arr = arr[~np.isnan(arr)]
print(arr)  # [1. 2. 3.]

Метод 4: Заполнение значений nan
Функция isnan() вместе с функцией log_not() может использоваться для создания маски для заполнения значений nan определенным значением:

import numpy as np
arr = np.array([1, np.nan, 2, np.nan, 3])
arr[np.isnan(arr)] = 0
print(arr)  # [1. 0. 2. 0. 3.]

Метод 5: Интерполяция значений nan
Функция interp() в numpy может использоваться для интерполяции значений nan на основе окружающих значений:

import numpy as np
arr = np.array([1, np.nan, 2, np.nan, 3])
mask = np.isnan(arr)
arr[mask] = np.interp(np.flatnonzero(mask), np.flatnonzero(~mask), arr[~mask])
print(arr)  # [1. 1.5 2. 2.5 3.]

Метод 6: использование nanmean(), nanmedian() и nanstd()
Numpy предоставляет функции nanmean(), nanmedian() и nanstd() для вычисления среднего значения, медианы и стандартного отклонения массива. игнорируя значения nan:

import numpy as np
arr = np.array([1, np.nan, 2, np.nan, 3])
print(np.nanmean(arr))  # 2.0
print(np.nanmedian(arr))  # 2.0
print(np.nanstd(arr))  # 0.816496580927726

Метод 7: проверка наличия в массиве значения nan
Функция Any() может использоваться для проверки наличия в массиве хотя бы одного значения nan:

import numpy as np
arr = np.array([1, np.nan, 2, np.nan, 3])
print(np.any(np.isnan(arr)))  # True

Метод 8: создание массива со значениями nan
Функция full() может использоваться для создания массива указанной формы и заполнения его значениями nan:

import numpy as np
arr = np.full((3, 3), np.nan)
print(arr)

Выход:

[[nan nan nan]
 [nan nan nan]
 [nan nan nan]]

На этом завершается наше исследование различных методов работы со значениями nan в numpy. Используя эти методы, вы можете эффективно обрабатывать пропущенные или неопределенные значения в числовых массивах.