scipy.special.xlog1py#

scipy.special.xlog1py(x, y, out=None) = <ufunc 'xlog1py'>#

计算 x*log1p(y),使得当 x = 0 时结果为 0。

参数:
xarray_like

乘数

yarray_like

参数

outndarray, 可选

函数结果的可选输出数组

返回:
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,因为 log 函数可以将这些值转换成更方便操作的范围。

>>> _log_pmf = xlog1py(k - 1, -p) + np.log(p)
>>> _log_pmf
-69.31471805599453

通过对 log pmf 取指数函数,我们可以验证获得的值非常接近于原始 pmf。

>>> _orig_pmf = np.exp(_log_pmf)
>>> np.isclose(_pmf, _orig_pmf)
True