abs#
- scipy.stats.abs(X, /)[source]#
Absolute value of a random variable
- Parameters:
- XContinuousDistribution
The random variable \(X\).
- Returns:
- YContinuousDistribution
A random variable \(Y = |X|\).
Notes
Array API Standard Support
abs
has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variableSCIPY_ARRAY_API=1
and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. 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 normally distributed random variable \(X\):
>>> import numpy as np >>> from scipy import stats >>> X = stats.Normal()
We wish to have a random variable \(Y\) distributed according to the folded normal distribution; that is, a random variable \(|X|\).
>>> Y = stats.abs(X)
The PDF of the distribution in the left half plane is “folded” over to the right half plane. Because the normal PDF is symmetric, the resulting PDF is zero for negative arguments and doubled for positive arguments.
>>> import matplotlib.pyplot as plt >>> x = np.linspace(0, 5, 300) >>> ax = plt.gca() >>> Y.plot(x='x', y='pdf', t=('x', -1, 5), ax=ax) >>> plt.plot(x, 2 * X.pdf(x), '--') >>> plt.legend(('PDF of `Y`', 'Doubled PDF of `X`')) >>> plt.show()