Broadcasting: правила совместимости форм и исправление несовместимости
Содержание курса
Broadcasting: нормализация строк и столбцов матрицы
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinдва целых числаRиC— число строк и столбцов матрицы. - Читает следующие
Rстрок; каждая содержит ровноCцелых чисел через пробел. Создаёт двумерный массивMчерезnp.array(..., dtype=float)формы(R, C). - Нормализация по строкам. Вычисляет сумму каждой строки через
np.sum(M, axis=1)— результат shape(R,). ДелитMна эти суммы через broadcasting, добавив ось через[:, np.newaxis]илиreshape(-1, 1), чтобы делитель стал формы(R, 1). Сохраняет результат вnorm_rows— shape(R, C). Выводит shapenorm_rowsв одну строку. - Нормализация по столбцам. Вычисляет максимум каждого столбца через
np.max(M, axis=0)— результат shape(C,). ДелитMна эти максимумы через broadcasting (форма(C,)совместима с(R, C)напрямую). Сохраняет результат вnorm_cols— shape(R, C). Выводит shapenorm_colsв одну строку. - Выводит через пробел два значения:
norm_rows[0, 0]иnorm_cols[0, 0], округлённых до одного знака после запятой.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
Первая строка: два целых числа R и C через пробел.
Следующие R строк: по C целых чисел через пробел.
Гарантируется: R >= 2, C >= 2, все элементы матрицы положительны.
Формат вывода
Три строки:
- shape
norm_rowsв виде кортежа Python, например(2, 4); - shape
norm_colsв виде кортежа Python, например(2, 4); - два значения через пробел:
norm_rows[0, 0]иnorm_cols[0, 0], каждое с одним знаком после запятой.
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
- Тест 1Ввод
2 4 1 2 3 4 2 4 6 8
Ожидаемый вывод(2, 4) (2, 4) 0.1 0.5
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
