NumPy: массивы, форма и индексация

Базовая индексация: элементы, строки, столбцы и срезы

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

Найди и исправь: цепочечная индексация вместо прямоугольного среза

Что уже дано

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

В редакторе уже есть сломанный код. Он пытается выполнить три операции над двумерным массивом, но в каждой допущена ошибка: либо применена цепочечная индексация вместо одного выражения, либо перепутан целый индекс со срезом, либо неверно задан шаг.

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

Найдите и исправьте все три ошибки так, чтобы программа:

  1. Читала из stdin одну строку с четырьмя целыми числами: R, C, r, c.
  2. Создавала двумерный массив arr через np.arange(R * C).reshape(R, C).
  3. Вычисляла три результата и выводила их shape в три отдельные строки:
  • res1: прямоугольный блок строк 0..r-1 и столбцов 0..c-1 — shape должен быть (r, c);
  • res2: каждая вторая строка (начиная с 0) и каждый второй столбец (начиная с 0) — shape должен быть (ceil(R/2), ceil(C/2));
  • res3: столбец c-1 целиком как одномерный массив — shape должен быть (R,).

Shape выводите строго в формате Python: (n,) для одномерных, (r, c) для двумерных.

Ввод и вывод

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

Формат ввода

Одна строка: четыре целых числа R C r c, разделённые пробелами. Гарантируется: 1 <= r <= R, 1 <= c <= C.

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

Три строки — shape результатов res1, res2, res3 в указанном порядке.

О данных в ответах

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

Проверяется тестами (1)
  • Тест 1
    Ввод
    4 6 2 3
    Ожидаемый вывод
    (2, 3)
    (2, 3)
    (4,)
Решение
Как проверяется решение

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

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