NumPy: вычисления и устройство массивов

Векторная арифметика и where/clip

Содержание курса

Аудит насыщения: подсчёт выбросов и clip за один проход

Что уже дано

Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.

Что нужно сделать

Напишите программу, которая анализирует насыщение целочисленного массива:

  1. Читает из stdin строку с целыми числами через пробел — элементы массива data. Создаёт data = np.array([...], dtype=int).
  2. Читает вторую строку с двумя целыми числами lo и hi — границы допустимого диапазона (lo < hi).
  3. Вычисляет три счётчика с помощью булевой выборки и len:
  • n_below — количество элементов строго меньше lo;
  • n_inside — количество элементов, удовлетворяющих (data >= lo) & (data <= hi);
  • n_above — количество элементов строго больше hi.
  1. Выводит первую строку: below=<n_below> inside=<n_inside> above=<n_above>.
  2. Вычисляет clipped = np.clip(data, lo, hi) и выводит элементы clipped через пробел.
  3. Выводит элементы исходного массива data через пробел — убедитесь, что он не изменился.

Итого ровно три строки вывода.

Ввод и вывод

Программа читает stdin и пишет в stdout.

Формат ввода

  • Строка 1: целые числа через пробел — элементы массива data (от 3 до 10 элементов).
  • Строка 2: два целых числа через пробел: lo hi.

Формат вывода

Ровно три строки:

  1. below=<n_below> inside=<n_inside> above=<n_above> — счётчики насыщения.
  2. Элементы clipped через пробел.
  3. Элементы исходного data через пробел.
О данных в ответах

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

Проверяется тестами (1)
  • Тест 1
    Ввод
    -5 0 3 8 15 7 2
    0 10
    Ожидаемый вывод
    below=1 inside=5 above=1
    0 0 3 8 10 7 2
    -5 0 3 8 15 7 2
Решение
Как проверяется решение

Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.

Отправьте решение, чтобы увидеть результаты тестов.