scipy.stats.sigmaclip¶
- scipy.stats.sigmaclip(a, low=4.0, high=4.0)[源代码]¶
执行数组元素的迭代σ修剪。
从完整样本开始,移除临界范围之外的所有元素,即输入数组的所有元素 c 满足以下任一条件的:
c < mean(c) - std(c)*low c > mean(c) + std(c)*high
迭代使用更新的样本继续,直到没有元素超出(更新的)范围。
- 参数
- aarray_like
数据数组,如果不是一维,将被分解。
- low浮动,可选
σ修剪的下界因子。默认值为4。
- high浮动,可选
σ修剪的上界因子。默认值为4。
- 退货
- clippedndarray
删除了裁剪元素的输入数组。
- lower浮动
用于裁剪的下限阈值。
- upper浮动
用于裁剪的上限阈值。
示例
>>> from scipy.stats import sigmaclip >>> a = np.concatenate((np.linspace(9.5, 10.5, 31), ... np.linspace(0, 20, 5))) >>> fact = 1.5 >>> c, low, upp = sigmaclip(a, fact, fact) >>> c array([ 9.96666667, 10. , 10.03333333, 10. ]) >>> c.var(), c.std() (0.00055555555555555165, 0.023570226039551501) >>> low, c.mean() - fact*c.std(), c.min() (9.9646446609406727, 9.9646446609406727, 9.9666666666666668) >>> upp, c.mean() + fact*c.std(), c.max() (10.035355339059327, 10.035355339059327, 10.033333333333333)
>>> a = np.concatenate((np.linspace(9.5, 10.5, 11), ... np.linspace(-100, -50, 3))) >>> c, low, upp = sigmaclip(a, 1.8, 1.8) >>> (c == np.linspace(9.5, 10.5, 11)).all() True