scipy.special.xlog1py#
-
scipy.special.xlog1py(x, y, выход=None) =
'xlog1py'> # Вычислить
x*log1p(y)так, чтобы результат был 0, еслиx = 0.- Параметры:
- xarray_like
Множитель
- yarray_like
Аргумент
- выходndarray, необязательно
Необязательный выходной массив для результатов функции
- Возвращает:
- zскаляр или ndarray
Вычислено x*log1p(y)
Примечания
Добавлено в версии 0.13.0.
Примеры
Этот пример показывает, как функцию можно использовать для вычисления логарифма функции вероятности массы для геометрической дискретной случайной величины. Функция вероятности массы геометрического распределения определяется следующим образом:
\[f(k) = (1-p)^{k-1} p\]где \(p\) является вероятностью единичного успеха и \(1-p\) это вероятность единичного отказа и \(k\) это количество испытаний до первого успеха.
>>> import numpy as np >>> from scipy.special import xlog1py >>> p = 0.5 >>> k = 100 >>> _pmf = np.power(1 - p, k - 1) * p >>> _pmf 7.888609052210118e-31
Если мы возьмем k как относительно большое число, значение функции вероятности может стать очень низким. В таких случаях взятие логарифма pmf было бы более подходящим, так как логарифмическая функция может преобразовать значения в масштаб, более удобный для работы.
>>> _log_pmf = xlog1py(k - 1, -p) + np.log(p) >>> _log_pmf -69.31471805599453
Мы можем подтвердить, что получаем значение, близкое к исходному значению pmf, взяв экспоненту от логарифма pmf.
>>> _orig_pmf = np.exp(_log_pmf) >>> np.isclose(_pmf, _orig_pmf) True