# scipy.special.log_expit#

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

Logarithm of the logistic sigmoid function.

The SciPy implementation of the logistic sigmoid function is `scipy.special.expit`, so this function is called `log_expit`.

The function is mathematically equivalent to `log(expit(x))`, but is formulated to avoid loss of precision for inputs with large (positive or negative) magnitude.

Parameters:
xarray_like

The values to apply `log_expit` to element-wise.

outndarray, optional

Optional output array for the function results

Returns:
outscalar or ndarray

The computed values, an ndarray of the same shape as `x`.

Notes

As a ufunc, `log_expit` takes a number of optional keyword arguments. For more information see ufuncs

Examples

```>>> import numpy as np
>>> from scipy.special import log_expit, expit
```
```>>> log_expit([-3.0, 0.25, 2.5, 5.0])
array([-3.04858735, -0.57593942, -0.07888973, -0.00671535])
```

Large negative values:

```>>> log_expit([-100, -500, -1000])
array([ -100.,  -500., -1000.])
```

Note that `expit(-1000)` returns 0, so the naive implementation `log(expit(-1000))` return `-inf`.

Large positive values:

```>>> log_expit([29, 120, 400])
array([-2.54366565e-013, -7.66764807e-053, -1.91516960e-174])
```

Compare that to the naive implementation:

```>>> np.log(expit([29, 120, 400]))
array([-2.54463117e-13,  0.00000000e+00,  0.00000000e+00])
```

The first value is accurate to only 3 digits, and the larger inputs lose all precision and return 0.