Broadcasting: правила совместимости форм и исправление несовместимости
Содержание курса
Broadcasting: outer-таблица и центрирование матрицы по строкам
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая выполняет два broadcasting-вычисления над одними и теми же данными.
- Читает из
stdinдва целых числаRиC— число строк и столбцов. - Читает следующие
Rстрок; каждая содержит ровноCцелых чисел через пробел. Создаёт двумерный массивMчерезnp.array(..., dtype=float)формы(R, C). - Outer-таблица разностей. Создаёт вектор
row_means— среднее каждой строки черезnp.mean(M, axis=1), shape(R,). Создаёт векторcol_means— среднее каждого столбца черезnp.mean(M, axis=0), shape(C,). Вычисляет outer-таблицуdiff = row_means[:, np.newaxis] - col_meansчерез broadcasting — shape должен быть(R, C). Выводит shapediffв одну строку, затем значение элементаdiff[0, 0]в следующую строку (целое число, если дробная часть нулевая, иначе float с одним знаком после запятой — используйтеg-формат:f"{val:.1g}"не нужен, простоint(val)еслиval == int(val)иначеround(val, 1)). - Центрирование строк. Вычитает из
Mсреднее каждой строки через broadcasting:centered = M - row_means[:, np.newaxis]— shape(R, C). Выводит shapecenteredв одну строку, затем значение элементаcentered[0, 0]в следующую строку (то же правило вывода числа).
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
Первая строка: два целых числа R и C через пробел.
Следующие R строк: по C целых чисел через пробел.
Гарантируется: R >= 2, C >= 2.
Формат вывода
Четыре строки:
- shape
diffв виде кортежа Python, например(3, 4); - значение
diff[0, 0]; - shape
centeredв виде кортежа Python, например(3, 4); - значение
centered[0, 0].
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
- Тест 1Ввод
3 4 1 2 3 4 5 6 7 8 9 10 11 12
Ожидаемый вывод(3, 4) -2.5 (3, 4) -1.5
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
