Функция log1p
Функция log1p вычисляет натуральный логарифм от (1 + x) для каждого элемента массива.
Она принимает один обязательный параметр - массив чисел, и возвращает новый массив с результатами вычислений.
Эта функция особенно полезна при работе с очень малыми значениями x, где прямое вычисление log(1 + x) может привести к потере точности.
Функция поддерживает работу с массивами любого размера и формы.
Синтаксис
np.log1p(x)
Пример
Давайте вычислим натуральный логарифм от (1 + x) для массива чисел:
import numpy as np
arr = np.array([0, 1, 2, 3, 4, 5])
res = np.log1p(arr)
print(res)
Результат выполнения кода:
[0. 0.69314718 1.09861229 1.38629436 1.60943791 1.79175947]
Пример
Давайте сравним точность вычислений log1p и log(1 + x) для очень малых значений x:
import numpy as np
x = np.array([1e-15, 1e-16, 1e-17])
res_log1p = np.log1p(x)
res_log = np.log(1 + x)
print("log1p:", res_log1p)
print("log: ", res_log)
Результат выполнения кода:
log1p: [1.e-15 1.e-16 1.e-17]
log: [1.0000000000000002e-15 0.0e+00 0.0e+00]
Пример
Давайте вычислим log1p для каждого элемента двумерного массива:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
res = np.log1p(arr)
print(res)
Результат выполнения кода:
[[0.69314718 1.09861229 1.38629436]
[1.60943791 1.79175947 1.94591015]]
Пример
Давайте используем log1p с отрицательными значениями, чтобы увидеть, как функция обрабатывает недопустимые входные данные:
import numpy as np
arr = np.array([-0.5, 0.5, -1, 1])
res = np.log1p(arr)
print(res)
Результат выполнения кода:
[-0.69314718 0.40546511 -inf 0.69314718]