scipy.stats.

trim_mean#

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

Возвращает среднее значение массива после обрезки заданной доли экстремальных значений

Удаляет указанную долю элементов из каждый конца отсортированного массива, затем вычисляет среднее оставшихся элементов.

Параметры:
aarray_like

Входной массив.

proportiontocutfloat

Доля самых положительных и самых отрицательных элементов для удаления. Когда указанная доля не даёт целого числа элементов, количество обрезаемых элементов округляется в меньшую сторону.

осьint или None, по умолчанию: 0

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

Возвращает:
trim_meanndarray

Среднее значение усеченного массива.

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

trimboth

Удалить долю элементов с каждого конца массива.

tmean

Вычислить среднее значение после обрезки значений за пределами указанных границ.

Примечания

Для 1-D массива a, trim_mean приблизительно эквивалентно следующему вычислению:

import numpy as np
a = np.sort(a)
m = int(proportiontocut * len(a))
np.mean(a[m: len(a) - m])

Примеры

>>> import numpy as np
>>> from scipy import stats
>>> x = [1, 2, 3, 5]
>>> stats.trim_mean(x, 0.25)
2.5

Когда указанная доля не приводит к целому числу элементов, количество обрезаемых элементов округляется в меньшую сторону.

>>> stats.trim_mean(x, 0.24999) == np.mean(x)
True

Используйте ось чтобы указать ось, вдоль которой выполняется вычисление.

>>> x2 = [[1, 2, 3, 5],
...       [10, 20, 30, 50]]
>>> stats.trim_mean(x2, 0.25)
array([ 5.5, 11. , 16.5, 27.5])
>>> stats.trim_mean(x2, 0.25, axis=1)
array([ 2.5, 25. ])