scipy.stats.

trim1#

scipy.stats.trim1(a, proportiontocut, tail='right', axis=0)[source]#

從傳遞的陣列分佈的「一端」切除一部分比例。

如果 proportiontocut = 0.1,則切除「最左邊」或「最右邊」10% 的分數。最低或最高值會被修剪(取決於尾部)。如果比例導致非整數切片索引,則切除較少部分(即保守地切除 proportiontocut)。

參數:
aarray_like

輸入陣列。

proportiontocutfloat

要從分佈的「左側」或「右側」切除的比例。

tail{‘left’, ‘right’}, 選項

預設為「right」。

axisint 或 None,選項

沿著要修剪資料的軸。預設值為 0。如果為 None,則在整個陣列 a 上計算。

回傳值:
trim1ndarray

陣列 a 的修剪版本。修剪內容的順序未定義。

範例

建立一個包含 10 個值的陣列,並修剪其 20% 的最低值

>>> import numpy as np
>>> from scipy import stats
>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> stats.trim1(a, 0.2, 'left')
array([2, 4, 3, 5, 6, 7, 8, 9])

請注意,輸入陣列的元素是依值修剪的,但輸出陣列不一定會排序。

要修剪的比例會四捨五入到最接近的整數。例如,從包含 10 個值的陣列中修剪 25% 的值將會回傳一個包含 8 個值的陣列

>>> b = np.arange(10)
>>> stats.trim1(b, 1/4).shape
(8,)

可以沿著任何軸或跨整個陣列修剪多維陣列

>>> c = [2, 4, 6, 8, 0, 1, 3, 5, 7, 9]
>>> d = np.array([a, b, c])
>>> stats.trim1(d, 0.8, axis=0).shape
(1, 10)
>>> stats.trim1(d, 0.8, axis=1).shape
(3, 2)
>>> stats.trim1(d, 0.8, axis=None).shape
(6,)