все Python 3Числа и математикафункция
math.log1p
корни/степени
Натуральный логарифм ln(1 + x), точно при малых x.
Синтаксис
math.log1p(...)
Когда x очень мал, сумма 1 + x округляется до 1.0 ещё до взятия логарифма, и math.log(1 + x) отдаёт ноль вместо ответа — log1p считает ln(1+x) напрямую и сохраняет значащие цифры. Берите её там, где x — небольшое относительное приращение: доходности, вероятности, накопление логарифма правдоподобия. Область определения x > -1, всё остальное даёт ValueError; обратная функция — math.expm1.
Примеры
import math
print(math.log1p(0)) # → 0.0
print(math.log1p(1)) # → 0.6931471805599453
print(math.log(1 + 1e-16)) # → 0.0
print(math.log1p(1e-16)) # → 1e-16
print(math.log1p(-1)) # → ValueError
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности