Задача курса
NumPy argsort по axis=0: индексы сортировки столбцов
Курс «NumPy и pandas: практический тренажёр» · урок «Сортировка массивов: sort и argsort»
Проверьте, что 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
- Ввод
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
Попробуйте решить
РешениеPython
Без регистрации · результат не сохраняется
