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

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

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

Min-max нормализация матрицы и позиции глобальных экстремумов

Что уже дано

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

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

Напишите программу, которая выполняет глобальную min-max нормализацию двумерного массива:

  1. Читает из stdin два целых числа R и C — количество строк и столбцов.
  2. Читает следующие R строк; каждая содержит C целых чисел через пробел. Создаёт двумерный массив arr через np.array(..., dtype=float) формы (R, C).
  3. Вычисляет скалярный глобальный минимум g_min = np.min(arr) и скалярный глобальный максимум g_max = np.max(arr) без параметра axis.
  4. Вычисляет нормализованный массив normed по формуле поэлементной арифметики:
normed = (arr - g_min) / (g_max - g_min)

Гарантируется, что все элементы матрицы не одинаковы, поэтому g_max - g_min > 0.
5. Вычисляет глобальный flat_argmin = np.argmin(arr) и flat_argmax = np.argmax(arr) без параметра axis — позиции в развёрнутом (flattened) массиве.
6. Выводит в stdout ровно три блока:

Блок 1. Нормализованный массив normed: каждая строка массива выводится на отдельной строке, значения через пробел, округлённые до 4 знаков после запятой (round(x, 4) для каждого элемента).

Блок 2. Одна строка: g_min g_max — глобальный минимум и максимум исходного массива (целые числа, без дробной части).

Блок 3. Одна строка: flat_argmin flat_argmax — позиции экстремумов в развёрнутом массиве.

Ввод и вывод

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

Формат ввода

R C
a00 a01 ... a0(C-1)
...
a(R-1)0 ... a(R-1)(C-1)

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

normed[0][0] normed[0][1] ... normed[0][C-1]
...
normed[R-1][0] ... normed[R-1][C-1]
g_min g_max
flat_argmin flat_argmax

Всего R + 2 строк. Значения normed округлены до 4 знаков после запятой. g_min и g_max — целые числа (без дробной части). flat_argmin и flat_argmax — целые числа.

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

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

Проверяется тестами (1)
  • Тест 1
    Ввод
    3 3
    3 1 4
    1 5 9
    2 6 5
    
    Ожидаемый вывод
    0.25 0.0 0.375
    0.0 0.5 1.0
    0.125 0.625 0.5
    1 9
    1 5
    
Решение
Как проверяется решение

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

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

Агрегации по массиву и по оси: sum, mean, min, max, argmin, argmax — NumPy и pandas: практический тренажёр — Latorn