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

Агрегации по массиву и по оси: sum, mean, min, max, argmin, argmax

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

Трёхмерный массив: агрегации по axis=0, axis=1, axis=2 и shape результата

Что уже дано

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

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

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

  1. Читает из stdin три целых числа D, R, C — количество «слоёв», строк и столбцов трёхмерного массива.
  2. Читает следующие D * R строк; каждая содержит C целых чисел через пробел. Из них создаёт трёхмерный массив cube через np.array(..., dtype=int).reshape(D, R, C) — shape (D, R, C).
  3. Вычисляет пять агрегаций и выводит результат каждой в два строки: первая — значения через пробел (или одно значение), вторая — shape кортежем Python:

Агрегация 1. np.sum(cube, axis=0) — сумма по «слоям» (ось 0 схлопывается). Shape результата (R, C).

Агрегация 2. np.mean(cube, axis=2) — среднее по столбцам (ось 2 схлопывается). Shape результата (D, R).

Агрегация 3. np.argmax(cube, axis=1) — номер строки с максимумом в каждом (слой, столбец). Shape результата (D, C).

Агрегация 4. np.min(cube, axis=0) — минимум по «слоям». Shape результата (R, C).

Агрегация 5. np.argmin(cube) без параметра axis — позиция минимума в развёрнутом массиве. Shape результата ().

Для многоэлементных результатов выводите значения через пробел в порядке обхода по умолчанию (flatten()). Для скаляра — одно число.

Ввод и вывод

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

Формат ввода

D R C
строка_0_слоя_0: c0 c1 ... c(C-1)
...
строка_(R-1)_слоя_0: c0 c1 ... c(C-1)
строка_0_слоя_1: c0 c1 ... c(C-1)
...
строка_(R-1)_слоя_(D-1): c0 c1 ... c(C-1)

Всего D * R строк с данными, каждая содержит C целых чисел.

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

Десять строк — по две на каждую из пяти агрегаций. Нечётная строка блока — значения через пробел или одно число. Чётная строка блока — shape в виде кортежа Python, например (3, 4) или ().

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

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

Проверяется тестами (1)
  • Тест 1
    Ввод
    2 3 4
    0 1 2 3
    4 5 6 7
    8 9 10 11
    12 13 14 15
    16 17 18 19
    20 21 22 23
    
    Ожидаемый вывод
    12 14 16 18 20 22 24 26 28 30 32 34
    (3, 4)
    1.5 5.5 9.5 13.5 17.5 21.5
    (2, 3)
    2 2 2 2 2 2 2 2
    (2, 4)
    0 1 2 3 4 5 6 7 8 9 10 11
    (3, 4)
    0
    ()
    
Решение
Как проверяется решение

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

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