scipy.special.log_ndtr — SciPy v1.15.3 Manual (original) (raw)

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

Logarithm of Gaussian cumulative distribution function.

Returns the log of the area under the standard Gaussian probability density function, integrated from minus infinity to x:

log(1/sqrt(2*pi) * integral(exp(-t**2 / 2), t=-inf..x))

Parameters:

xarray_like, real or complex

Argument

outndarray, optional

Optional output array for the function results

Returns:

scalar or ndarray

The value of the log of the normal CDF evaluated at x

Examples

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

The benefit of log_ndtr(x) over the naive implementationnp.log(ndtr(x)) is most evident with moderate to large positive values of 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])

The results of the naive calculation for the moderate x values have only 5 or 6 correct significant digits. For values of xgreater than approximately 8.3, the naive expression returns 0:

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