SciPy

scipy.stats.moment

scipy.stats.moment(a, moment=1, axis=0, nan_policy='propagate')[source]

Calculate the nth moment about the mean for a sample.

A moment is a specific quantitative measure of the shape of a set of points. It is often used to calculate coefficients of skewness and kurtosis due to its close relationship with them.

Parameters
aarray_like

Input array.

momentint or array_like of ints, optional

Order of central moment that is returned. Default is 1.

axisint or None, optional

Axis along which the central moment is computed. Default is 0. If None, compute over the whole array a.

nan_policy{‘propagate’, ‘raise’, ‘omit’}, optional

Defines how to handle when input contains nan. The following options are available (default is ‘propagate’):

  • ‘propagate’: returns nan

  • ‘raise’: throws an error

  • ‘omit’: performs the calculations ignoring nan values

Returns
n-th central momentndarray or float

The appropriate moment along the given axis or over all values if axis is None. The denominator for the moment calculation is the number of observations, no degrees of freedom correction is done.

See also

kurtosis, skew, describe

Notes

The k-th central moment of a data sample is:

\[m_k = \frac{1}{n} \sum_{i = 1}^n (x_i - \bar{x})^k\]

Where n is the number of samples and x-bar is the mean. This function uses exponentiation by squares [1] for efficiency.

References

1

https://eli.thegreenplace.net/2009/03/21/efficient-integer-exponentiation-algorithms

Examples

>>> from scipy.stats import moment
>>> moment([1, 2, 3, 4, 5], moment=1)
0.0
>>> moment([1, 2, 3, 4, 5], moment=2)
2.0

Previous topic

scipy.stats.mode

Next topic

scipy.stats.skew