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

Функция expm1

Функция expm1 вычисляет значение exp(x) - 1 для каждого элемента массива. Она принимает один обязательный параметр - массив чисел, а также дополнительные параметры для управления вычислениями. Главное преимущество функции - высокая точность при работе с очень малыми числами, когда прямое вычисление exp(x) - 1 приводит к потере значащих цифр из-за округления.

Синтаксис

np.expm1(x, out=None, where=True)

Параметры функции:

  • x - входной массив или скаляр, для которого вычисляется exp(x) - 1
  • out (необязательный) - массив для сохранения результата
  • where (необязательный) - условие для применения операции

Пример

Вычислим exp(x) - 1 для нескольких значений:

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

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

[ 1.71828183 6.3890561 19.08553692 53.59815003 147.4131591 ]

Обратите внимание, что для больших значений результат практически совпадает с обычным np.exp(arr) - 1.

Пример

Продемонстрируем преимущество expm1 для очень маленьких чисел:

import numpy as np small_val = 1e-10 arr = np.array([small_val]) res_expm1 = np.expm1(arr) res_direct = np.exp(arr) - 1 print("expm1:", res_expm1) print("direct:", res_direct)

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

expm1: [1.0000000000000000e-10] direct: [1.0000000000000000e-10]

Для чисел порядка 1e-10 разница не видна, но при работе с числами порядка 1e-15 и меньше она становится заметной.

Пример

Применим expm1 к отрицательным числам:

import numpy as np arr = np.array([-0.5, -1, -2, -3]) res = np.expm1(arr) print(res)

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

[-0.39346934 -0.63212056 -0.86466472 -0.95021293]

Для отрицательных значений результат лежит в диапазоне от -1 до 0.

Пример

Используем параметр out для сохранения результата в заранее созданный массив:

import numpy as np arr = np.array([0.1, 0.2, 0.3, 0.4, 0.5]) out_arr = np.empty_like(arr) np.expm1(arr, out=out_arr) print(out_arr)

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

[0.10517019 0.22140276 0.34985881 0.4918247 0.64872127]

Использование параметра out позволяет избежать создания нового массива и экономит память при работе с большими данными.

Пример

Применим expm1 к двумерному массиву:

import numpy as np arr = np.array([[0.1, 0.2], [0.3, 0.4]]) res = np.expm1(arr) print(res)

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

[[0.10517019 0.22140276] [0.34985881 0.4918247 ]]

Функция работает с массивами любой размерности, применяя вычисления к каждому элементу поэлементно.

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

  • функцию exp,
    которая вычисляет экспоненту от каждого элемента массива
  • функцию log1p,
    которая вычисляет log(1 + x) и является обратной к expm1
  • функцию exp2,
    которая вычисляет 2**x для каждого элемента массива
  • функцию absolute,
    которая вычисляет абсолютное значение каждого элемента массива
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить