scipy.stats.

trimboth#

scipy.stats.trimboth(a, proportiontocut, ось=0)[источник]#

Отсечь пропорцию элементов с обоих концов массива.

Отсечение переданной доли элементов с обоих концов переданного массива (т.е., с proportiontocut = 0.1, отсекает крайние 10% слева и крайние 10% значений). Обрезанные значения — самые низкие и самые высокие. Отсекается меньше, если пропорция приводит к нецелочисленному индексу среза (т.е. консервативно отсекается proportiontocut).

Параметры:
aarray_like

Данные для обрезки.

proportiontocutfloat

Доля (в диапазоне 0-1) от общего набора данных для обрезки с каждого конца.

осьint или None, опционально

Ось, вдоль которой обрезаются данные. По умолчанию 0. Если None, вычисляется по всему массиву a.

Возвращает:
выходndarray

Обрезанная версия массива a. Порядок обрезанного содержимого не определён.

Смотрите также

trim_mean

Примеры

Создать массив из 10 значений и обрезать 10% значений с каждого конца:

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

Обратите внимание, что элементы входного массива обрезаются по значению, но выходной массив не обязательно отсортирован.

Доля обрезаемых значений округляется в меньшую сторону до ближайшего целого числа. Например, обрезание 25% значений с каждого конца массива из 10 значений вернет массив из 6 значений:

>>> b = np.arange(10)
>>> stats.trimboth(b, 1/4).shape
(6,)

Многомерные массивы можно обрезать вдоль любой оси или по всему массиву:

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