當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。