РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
333 of 541 menu

Константа nan

Константа nan (Not a Number) в NumPy представляет специальное числовое значение, которое используется для обозначения результатов операций, не имеющих математического смысла. К таким операциям относятся деление нуля на ноль, извлечение корня из отрицательного числа или логарифм отрицательного числа. Константа доступна как np.nan и является экземпляром типа float.

Важно отметить, что nan не равен самому себе, что является отличительной особенностью этого значения. Для проверки наличия nan в массивах следует использовать функцию np.isnan, а не оператор сравнения.

Синтаксис

np.nan

Пример

Давайте создадим массив, содержащий значение nan, и выполним с ним арифметические операции:

import numpy as np arr = np.array([1, 2, np.nan, 4, 5]) print(arr)

Результат выполнения кода:

[ 1. 2. nan 4. 5.]

Пример

Выполним математические операции с числом и nan, чтобы увидеть, как распространяется это значение:

import numpy as np res = np.nan + 5 print(res) res = np.nan * 10 print(res)

Результат выполнения кода:

nan nan

Пример

Проверим, что nan не равен самому себе, и сравним результат с использованием функции np.isnan:

import numpy as np print(np.nan == np.nan) print(np.isnan(np.nan))

Результат выполнения кода:

False True

Пример

Используем nan для обработки пропущенных значений в массиве, заменяя их на среднее значение:

import numpy as np arr = np.array([1, 2, np.nan, 4, 5]) print("Original array:", arr) mean_val = np.nanmean(arr) print("Mean value:", mean_val) arr_filled = np.where(np.isnan(arr), mean_val, arr) print("Filled array:", arr_filled)

Результат выполнения кода:

Original array: [ 1. 2. nan 4. 5.] Mean value: 3.0 Filled array: [1. 2. 3. 4. 5.]

Пример

Создадим массив и выполним операции, которые могут привести к появлению nan:

import numpy as np arr = np.array([-1, 0, 1, 4]) print("Original array:", arr) sqrt_arr = np.sqrt(arr) print("Square root:", sqrt_arr) log_arr = np.log(arr) print("Logarithm:", log_arr) div_arr = np.divide(arr, 0) print("Division by zero:", div_arr)

Результат выполнения кода:

Original array: [-1 0 1 4] Square root: [ nan 0. 1. 2.] Logarithm: [ nan -inf 0. 1.38629436] Division by zero: [ -inf nan inf inf]

В этом примере видно, что извлечение корня из отрицательного числа дает nan, а деление нуля на ноль также приводит к nan. Деление положительного числа на ноль дает inf, а логарифм нуля дает -inf.

Смотрите также

  • константу inf,
    которая представляет бесконечность
  • константу NINF,
    которая представляет отрицательную бесконечность
  • константу PINF,
    которая представляет положительную бесконечность
  • константу NaN,
    которая является альтернативным именем для nan
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить