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

>>> import numpy as np
>>> 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])