Функция nan_to_num
Функция nan_to_num заменяет пропущенные значения NaN
на ноль, а значения inf и -inf - на большие
конечные числа. Первым параметром функция принимает массив
с данными. Опционально можно задать значения для замены
через параметры nan, posinf и neginf,
а также управлять копированием данных через copy.
Синтаксис
np.nan_to_num(arr, nan=0.0, posinf=None, neginf=None, copy=True)
Пример
Давайте заменим пропущенные значения в массиве на ноль:
import numpy as np
arr = np.array([1, np.nan, 3, np.nan, 5])
res = np.nan_to_num(arr)
print(res)
Результат выполнения кода:
[1. 0. 3. 0. 5.]
Пример
Давайте заменим бесконечности на заданные числа:
import numpy as np
arr = np.array([1, np.inf, -np.inf, 4, 5])
res = np.nan_to_num(arr, posinf=999, neginf=-999)
print(res)
Результат выполнения кода:
[ 1. 999. -999. 4. 5.]
Пример
Заменим и пропуски, и бесконечности одновременно:
import numpy as np
arr = np.array([1, np.nan, np.inf, -np.inf, 5])
res = np.nan_to_num(arr, nan=-1, posinf=100, neginf=-100)
print(res)
Результат выполнения кода:
[ 1. -1. 100. -100. 5.]
Пример
При работе с многомерными массивами замена выполняется для всех элементов:
import numpy as np
arr = np.array([[1, np.nan, 3], [np.inf, 5, -np.inf]])
res = np.nan_to_num(arr, nan=0, posinf=999, neginf=-999)
print(res)
Результат выполнения кода:
[[ 1. 0. 3.]
[999. 5. -999.]]