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. Порядок обрезанного содержимого не определён.
Смотрите также
Примеры
Создать массив из 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,)