import statistics # Новое в Python 3.8. statistics.quantiles(data, *, n=4, method='exclusive')
data
- данные - любая последовательность, поддерживающая итерацию,n=4
- целое число > 1, обозначает интервал отсечения данных data
,method='exclusive'
- метод вычисления интервалов отсечения.n - 1
элементов среза.Функция quantiles()
модуля statistics
делит числовую последовательность с данными data
на n
интервалов отсечения с равной вероятностью. Возвращает список из n - 1
элементов отсечения, разделяющих эти интервалы.
n
задает интервал отсечения:n
равным 10, n
равным 100 , что дает 99 точек отсечения, которые разделяют данные на 100 групп равного размера.n
меньше 1, вызывается ошибка StatisticsError
.Образцы данных data
могут быть любыми последовательностями, поддерживающими итерацию. Для получения значимых результатов число элементов в последовательности с данными должно быть больше n
. Вызывает ошибку StatisticsError
, если число элементов последовательности с данными меньше 2-х.
Точки отсечения линейно интерполируются из двух ближайших элементов последовательности с образцами данных. Например, если точка отсечения попадает на одну треть расстояния между двумя значениями выборки, 100 и 112, то элемент отсечения будет оценен как 104.
Метод вычисления интервалов отсечения (задается аргументом method
) может варьироваться в зависимости от того, включают ли данные самые низкие и самые высокие возможные значения из всей последовательности данных или исключают их.
Аргумент method
по умолчанию является 'exclusive'
и используется для выборки данных из всех числовых данных, которые могут иметь более экстремальные значения, чем найденные в выборках. Доля всей числовой последовательности, падающей ниже i
-ой из m
отсортированных элементов данных, вычисляется как i / (m + 1)
. Учитывая девять выборочных значений, функция сортирует их и присвоит следующие процентили: 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%.
Установка аргумент method='inclusive'
используется для описания данных о совокупности или для выборок, которые, как известно, включают самые экстремальные значения от всех числовых данных. Минимальное значение в данных рассматривается как 0-й процентиль, а максимальное значение рассматривается как 100-й процентиль. Доля всех числовых данных, попадающая ниже i
-ой из m
отсортированных элементов данных, вычисляется как (i - 1) / (m - 1)
. Учитывая 11 значений выборки, функция сортирует их и назначит следующие процентили: 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 100%.
statistics.quantiles()
:>>> import statistics # Децильные точки отсечения для эмпирически отобранных данных >>> data = [105, 129, 87, 86, 111, 111, 89, 81, 108, 92, 110, ... 100, 75, 105, 103, 109, 76, 119, 99, 91, 103, 129, ... 106, 101, 84, 111, 74, 87, 86, 103, 103, 106, 86, ... 111, 75, 87, 102, 121, 111, 88, 89, 101, 106, 95, ... 103, 107, 101, 81, 109, 104] >>> dec = statistics.quantiles(data, n=10) >>> [round(q, 1) for q in dec] # [81.0, 86.2, 89.0, 99.4, 102.5, 103.6, 106.0, 109.8, 111.0]