Задача курса

np.where и np.clip: задача на операции с массивом

Курс «NumPy и pandas: практический тренажёр» · урок «Векторная арифметика и where/clip»

Одна задача объединяет несколько операций над ndarray и показывает, где векторный код заменяет перебор элементов.

Условие

Пять строк вывода: степень, остаток, where, clip и арифметика

Что уже дано

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

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

Напишите программу, которая:

  1. Читает из stdin одну строку с целыми числами через пробел — элементы массива a (от 3 до 7 элементов, все положительные, не менее 2).
  2. Читает вторую строку с тремя целыми числами: p lo hi — показатель степени, нижняя и верхняя границы.
  3. Вычисляет и выводит ровно пять строк в следующем порядке:
  • Строка 1: элементы a ** p через пробел.
  • Строка 2: элементы a % p через пробел.
  • Строка 3: элементы результата np.where(a >= lo, "big", "small") через пробел.
  • Строка 4: элементы результата np.where(a % 2 == 0, 1, 0) через пробел.
  • Строка 5: элементы np.clip(a, lo, hi) через пробел.

Каждая строка — значения через пробел, без лишних пробелов в начале и в конце.

Ввод и вывод

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

Формат ввода

  • Строка 1: целые числа через пробел — элементы массива a (от 3 до 7 элементов, все ≥ 2).
  • Строка 2: три целых числа через пробел: p lo hi (2 ≤ p ≤ 4, lo < hi, оба входят в диапазон значений a).

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

Ровно пять строк: a**p, a%p, результат where со строками, результат where с 0/1, clip(a, lo, hi) — каждый через пробел.

Примеры

Пример 1

Ввод
2 3 4 5 6
2 4 5
Ожидаемый результат
4 9 16 25 36
0 1 0 1 0
small small big big big
1 0 1 0 1
4 4 4 5 5

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

РешениеPython
Без регистрации · результат не сохраняется