当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy mstats.winsorize用法及代码示例


本文简要介绍 python 语言中 scipy.stats.mstats.winsorize 的用法。

用法:

scipy.stats.mstats.winsorize(a, limits=None, inclusive=(True, True), inplace=False, axis=None, nan_policy='propagate')#

返回输入数组的 Winsorized 版本。

第 (limits[0]) 个最低值设置为第 (limits[0]) 个百分位数,第 (limits[1]) 个最高值设置为第 (1 - limits[1]) 个百分位数。屏蔽值被跳过。

参数

a 序列

输入数组。

limits {无,浮点元组},可选

数组每一侧要切割的百分比元组,相对于未屏蔽数据的数量,在 0 和 1 之间浮点数。注意修剪前未屏蔽数据的数量,即 (n*limits[0])th最小数据和第 (n*limits[1]) 个最大数据被屏蔽,修剪后未屏蔽数据的总数为 n*(1.-sum(limits)) 一个limit的值可以设置为None表示开区间。

inclusive {(True, True) 元组},可选

元组指示是否应截断 (True) 或舍入 (False) 在每一侧被屏蔽的数据数。

inplace {假,真},可选

是原地Winsorize(真)还是使用副本(假)

axis {无,整数},可选

要修剪的轴。如果为 None,则修剪整个数组,但保持其形状。

nan_policy {‘propagate’, ‘raise’, ‘omit’},可选

定义当输入包含 nan 时如何处理。以下选项可用(默认为‘propagate’):

  • ‘propagate’: allows nan values and may overwrite or propagate them

  • ‘raise’: throws an error

  • ‘omit’: performs the calculations ignoring nan values

注意

此函数用于通过限制极值来减少可能的虚假异常值的影响。

例子

>>> import numpy as np
>>> from scipy.stats.mstats import winsorize

一个 shuffled 数组包含从 1 到 10 的整数。

>>> a = np.array([10, 4, 9, 8, 5, 3, 7, 2, 1, 6])

最低值的 10%(即 1)和最高值的 20%(即 9 和 10)被替换。

>>> winsorize(a, limits=[0.1, 0.2])
masked_array(data=[8, 4, 8, 8, 5, 3, 7, 2, 2, 6],
             mask=False,
       fill_value=999999)

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.mstats.winsorize。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。