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

Broadcasting: правила совместимости форм и исправление несовместимости

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

Broadcasting: нормализация строк и столбцов матрицы

Что уже дано

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

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

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

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

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

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

Broadcasting: правила совместимости форм и исправление несовместимости — NumPy и pandas: практический тренажёр — Latorn