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

Объединение массивов: concatenate и stack

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

Найди и исправь: неверные axis в concatenate и stack

Что уже дано

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

В редакторе уже есть сломанный код. Он пытается выполнить четыре операции объединения массивов, но в каждой из четырёх допущена ошибка: либо перепутан axis в np.concatenate, либо неверна позиция новой оси в np.stack, либо массивы переданы в неправильном порядке.

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

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

  1. Читала из stdin четыре целых числа в одной строке: R, C, R2, n.
  2. Создавала:
  • a = np.arange(R * C).reshape(R, C) — shape (R, C);
  • b = np.arange(R2 * C).reshape(R2, C) — shape (R2, C);
  • список из n одномерных массивов vecs, где i-й равен np.arange(i * C, (i + 1) * C) — shape (C,) каждый.
  1. Выполняла четыре операции и выводила shape каждого результата в отдельной строке:
  • op1 = np.concatenate([a, b], axis=0) — склейка по строкам; shape (R + R2, C);
  • op2 = np.concatenate([a, a], axis=1) — склейка по столбцам; shape (R, 2 * C);
  • op3 = np.stack(vecs, axis=0) — новая ось в позиции 0; shape (n, C);
  • op4 = np.stack(vecs, axis=1) — новая ось в позиции 1; shape (C, n).

Каждый shape выводите в виде Python-кортежа, например (4, 3).

Ввод и вывод

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

Формат ввода

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

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

Четыре строки — shape каждой операции в виде Python-кортежа.

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

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

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

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

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