scipy.special.log_ndtr#

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

高斯累积分布函数的对数。

返回从负无穷到 x 的集成之下的标准高斯概率密度函数的区域对数

log(1/sqrt(2*pi) * integral(exp(-t**2 / 2), t=-inf..x))
参数:
x类似数组、实数或复数

自变量

outndarray,可选

函数结果的可选输出数组

返回:
标量或 ndarray

x 处计算的正态 CDF 对数的值

另请参见

erf
erfc
scipy.stats.norm
ndtr

示例

>>> import numpy as np
>>> from scipy.special import log_ndtr, ndtr

与朴素实现 np.log(ndtr(x)) 相比,log_ndtr(x) 的优势在 x 的较大正值下表现得最为明显

>>> x = np.array([6, 7, 9, 12, 15, 25])
>>> log_ndtr(x)
array([-9.86587646e-010, -1.27981254e-012, -1.12858841e-019,
       -1.77648211e-033, -3.67096620e-051, -3.05669671e-138])

对于中等 x 值,朴素计算的结果只有 5 或 6 位有效数字。对于大于约 8.3 的 x 值,朴素表达式返回 0

>>> np.log(ndtr(x))
array([-9.86587701e-10, -1.27986510e-12,  0.00000000e+00,
        0.00000000e+00,  0.00000000e+00,  0.00000000e+00])