Агрегации по массиву и по оси: sum, mean, min, max, argmin, argmax
Содержание курса
Трёхмерный массив: агрегации по axis=0, axis=1, axis=2 и shape результата
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinтри целых числаD,R,C— количество «слоёв», строк и столбцов трёхмерного массива. - Читает следующие
D * Rстрок; каждая содержитCцелых чисел через пробел. Из них создаёт трёхмерный массивcubeчерезnp.array(..., dtype=int).reshape(D, R, C)— shape(D, R, C). - Вычисляет пять агрегаций и выводит результат каждой в два строки: первая — значения через пробел (или одно значение), вторая — 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Ввод
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 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
