Сортировка массивов: sort и argsort
Содержание курса
argsort по axis=0: ранги объектов в каждом столбце
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinдва целых числаRиC— число строк и столбцов матрицы. - Читает следующие
Rстрок; каждая содержит ровноCцелых чисел через пробел. Создаёт двумерный массивMчерезnp.array(..., dtype=int)формы(R, C). - Вычисляет
ranks = np.argsort(M, axis=0). Каждый элементranks[i, j]— это номер строки исходной матрицы, которая занимаетi-ю позицию по возрастанию в столбцеj. - Выводит в
stdoutтри блока:
- строка 1:
ranks shape=<shape>— shape результатаnp.argsort(M, axis=0); - строки 2..R+1: матрицу
ranks— каждую строку на отдельной строке, значения через пробел; - строка R+2:
original unchanged=<bool>—True, еслиMне был изменён (сравните с копией, сделанной до вычисленияranks), иначеFalse.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
R C
row_0_col_0 row_0_col_1 ... row_0_col_{C-1}
...
row_{R-1}_col_0 ... row_{R-1}_col_{C-1}
Формат вывода
ranks shape=(R, C)
элементы ranks строка за строкой
original unchanged=True
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
Проверяется тестами (1)
- Тест 1Ввод
3 3 4 1 7 2 8 3 6 5 9
Ожидаемый выводranks shape=(3, 3) 1 0 1 0 2 0 2 1 2 original unchanged=True
Решение
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
