log#
- scipy.stats.log(X, /)[source]#
Natural logarithm of a non-negative random variable.
- Parameters:
- XContinuousDistribution
The random variable \(X\) with positive support.
- Returns:
- YContinuousDistribution
A random variable \(Y = \log(X)\).
Notes
Array API Standard Support
loghas support for Python Array API Standard compatible backends in addition to NumPy. The following combinations of backend and device (or other capability) are supported.Library
CPU
GPU
NumPy
✅
n/a
CuPy
n/a
✅
PyTorch
⛔
⛔
JAX
⛔
⛔
Dask
⛔
n/a
See Support for the array API standard for more information.
Examples
Suppose we have a gamma distributed random variable \(X\):
>>> import numpy as np >>> from scipy import stats >>> Gamma = stats.make_distribution(stats.gamma) >>> X = Gamma(a=1.0)
We wish to have an exp-gamma distributed random variable \(Y\), a random variable whose natural exponential is \(X\). If \(X\) is to be the natural exponential of \(Y\), then we must take \(Y\) to be the natural logarithm of \(X\).
>>> Y = stats.log(X)
To demonstrate that
Xrepresents the exponential ofY, we plot a normalized histogram of the exponential of observations ofYagainst the PDF underlyingX.>>> import matplotlib.pyplot as plt >>> rng = np.random.default_rng() >>> y = Y.sample(shape=10000, rng=rng) >>> ax = plt.gca() >>> ax.hist(np.exp(y), bins=50, density=True) >>> X.plot(ax=ax) >>> plt.legend(('PDF of `X`', 'histogram of `exp(y)`')) >>> plt.show()