scipy.special.xlog1py#

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

計算 x*log1p(y),使得當 x = 0 時,結果為 0。

參數:
xarray_like

乘數

yarray_like

引數

outndarray, optional

函數結果的可選輸出陣列

返回:
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