Задача курса

NumPy clip: ограничение значений и подсчёт выбросов

Курс «NumPy и pandas: практический тренажёр» · урок «Векторная арифметика и 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

Ввод
-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

Попробуйте решить

РешениеPython
Без регистрации · результат не сохраняется
NumPy clip: ограничение значений и подсчёт выбросов