scipy.stats.describe(a, axis=0, ddof=1, bias=True, nan_policy='propagate')[source]#

Compute several descriptive statistics of the passed array.


Input data.

axisint or None, optional

Axis along which statistics are calculated. Default is 0. If None, compute over the whole array a.

ddofint, optional

Delta degrees of freedom (only for variance). Default is 1.

biasbool, optional

If False, then the skewness and kurtosis calculations are corrected for statistical bias.

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

nobsint or ndarray of ints

Number of observations (length of data along axis). When ‘omit’ is chosen as nan_policy, the length along each axis slice is counted separately.

minmax: tuple of ndarrays or floats

Minimum and maximum value of a along the given axis.

meanndarray or float

Arithmetic mean of a along the given axis.

variancendarray or float

Unbiased variance of a along the given axis; denominator is number of observations minus one.

skewnessndarray or float

Skewness of a along the given axis, based on moment calculations with denominator equal to the number of observations, i.e. no degrees of freedom correction.

kurtosisndarray or float

Kurtosis (Fisher) of a along the given axis. The kurtosis is normalized so that it is zero for the normal distribution. No degrees of freedom are used.

See also

skew, kurtosis


>>> import numpy as np
>>> from scipy import stats
>>> a = np.arange(10)
>>> stats.describe(a)
DescribeResult(nobs=10, minmax=(0, 9), mean=4.5,
               variance=9.166666666666666, skewness=0.0,
>>> b = [[1, 2], [3, 4]]
>>> stats.describe(b)
DescribeResult(nobs=2, minmax=(array([1, 2]), array([3, 4])),
               mean=array([2., 3.]), variance=array([2., 2.]),
               skewness=array([0., 0.]), kurtosis=array([-2., -2.]))