trim1#
- scipy.stats.trim1(a, proportiontocut, tail='right', ось=0)[источник]#
Отсечь долю с ОДНОГО конца переданного распределения массива.
Если proportiontocut = 0.1, отсекает 'левую' или 'правую' 10% значений. Наименьшие или наибольшие значения обрезаются (в зависимости от хвоста). Отсекает меньше, если пропорция приводит к нецелому индексу отсечения (т.е. консервативно отсекает proportiontocut ).
- Параметры:
- aarray_like
Входной массив.
- proportiontocutfloat
Доля для отсечения 'слева' или 'справа' от распределения.
- tail{‘left’, ‘right’}, необязательно
По умолчанию ‘right’.
- осьint или 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])
Обратите внимание, что элементы входного массива обрезаются по значению, но выходной массив не обязательно отсортирован.
Доля для обрезки округляется в меньшую сторону до ближайшего целого числа. Например, обрезка 25% значений из массива из 10 значений вернёт массив из 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,)