scipy.stats.

trim_mean#

scipy.stats.trim_mean(a, proportiontocut, axis=0)[源代码]#

返回修剪掉指定比例的极端值后的数组的平均值

从排序数组的每个末端移除指定比例的元素,然后计算剩余元素的平均值。

参数:
aarray_like

输入数组。

proportiontocutfloat

要移除的最大正值和最大负值的元素的比例。当指定的比例不能得出整数个元素时,要修剪的元素数量将向下取整。

axisint 或 None,默认值: 0

计算修剪平均值所沿的轴。如果为 None,则对扁平化数组进行计算。

返回值:
trim_meanndarray

修剪后的数组的平均值。

另请参阅

trimboth

从数组的每一端移除一定比例的元素。

tmean

在修剪掉指定限制之外的值后计算平均值。

注释

对于一维数组 atrim_mean 大致等效于以下计算

import numpy as np
a = np.sort(a)
m = int(proportiontocut * len(a))
np.mean(a[m: len(a) - m])

示例

>>> import numpy as np
>>> from scipy import stats
>>> x = [1, 2, 3, 5]
>>> stats.trim_mean(x, 0.25)
2.5

当指定的比例不能得出整数个元素时,要修剪的元素数量将向下取整。

>>> stats.trim_mean(x, 0.24999) == np.mean(x)
True

使用 axis 指定执行计算所沿的轴。

>>> x2 = [[1, 2, 3, 5],
...       [10, 20, 30, 50]]
>>> stats.trim_mean(x2, 0.25)
array([ 5.5, 11. , 16.5, 27.5])
>>> stats.trim_mean(x2, 0.25, axis=1)
array([ 2.5, 25. ])