scipy.stats.trim_mean

scipy.stats.trim_mean(a, proportiontocut, axis=0)[source]

Return mean of array after trimming distribution from both tails.

If proportiontocut = 0.1, slices off ‘leftmost’ and ‘rightmost’ 10% of scores. The input is sorted before slicing. Slices off less if proportion results in a non-integer slice index (i.e., conservatively slices off proportiontocut ).

Parameters
aarray_like

Input array.

proportiontocutfloat

Fraction to cut off of both tails of the distribution.

axisint or None, optional

Axis along which the trimmed means are computed. Default is 0. If None, compute over the whole array a.

Returns
trim_meanndarray

Mean of trimmed array.

See also

trimboth
tmean

Compute the trimmed mean ignoring values outside given limits.

Examples

>>> from scipy import stats
>>> x = np.arange(20)
>>> stats.trim_mean(x, 0.1)
9.5
>>> x2 = x.reshape(5, 4)
>>> x2
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19]])
>>> stats.trim_mean(x2, 0.25)
array([  8.,   9.,  10.,  11.])
>>> stats.trim_mean(x2, 0.25, axis=1)
array([  1.5,   5.5,   9.5,  13.5,  17.5])