Векторная арифметика и where/clip
Содержание курса
Аудит насыщения: подсчёт выбросов и clip за один проход
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая анализирует насыщение целочисленного массива:
- Читает из
stdinстроку с целыми числами через пробел — элементы массиваdata. Создаётdata = np.array([...], dtype=int). - Читает вторую строку с двумя целыми числами
loиhi— границы допустимого диапазона (lo < hi). - Вычисляет три счётчика с помощью булевой выборки и
len:
n_below— количество элементов строго меньшеlo;n_inside— количество элементов, удовлетворяющих(data >= lo) & (data <= hi);n_above— количество элементов строго большеhi.
- Выводит первую строку:
below=<n_below> inside=<n_inside> above=<n_above>. - Вычисляет
clipped = np.clip(data, lo, hi)и выводит элементыclippedчерез пробел. - Выводит элементы исходного массива
dataчерез пробел — убедитесь, что он не изменился.
Итого ровно три строки вывода.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
- Строка 1: целые числа через пробел — элементы массива
data(от 3 до 10 элементов). - Строка 2: два целых числа через пробел:
lo hi.
Формат вывода
Ровно три строки:
below=<n_below> inside=<n_inside> above=<n_above>— счётчики насыщения.- Элементы
clippedчерез пробел. - Элементы исходного
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 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
