Код Middle Описательная статистика обновлено

Выбросы по правилу Тьюки на Python

Условие

Напишите tukey_outliers(xs) для непустого списка чисел. Квартили считайте линейной интерполяцией: отсортируйте s, позиция pos = (n - 1) * p, значение s[i] + (s[i+1] - s[i]) * (pos - i), где i = int(pos) (как numpy.percentile по умолчанию). Выброс: значение меньше Q1 - 1.5·IQR или больше Q3 + 1.5·IQR. Верните {"q1", "q3"} с round(..., 2) и "outliers" отсортированным списком.

Примеры

tukey_outliers([1, 2, 3, 4, 5, 6, 7, 8, 100]) // {"q1":3,"q3":7,"outliers":[100]}
tukey_outliers([10, 12, 11, 13, 12]) // {"q1":11,"q3":12,"outliers":[]}
tukey_outliers([5]) // {"q1":5,"q3":5,"outliers":[]}

Как подойти

Подсказки: 2
  1. Позиция квантиля: (n - 1) * p.
  2. Аккуратно с последним индексом при p близком к 1 и n = 1.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме