NumPy sort по axis=0 и axis=1 без изменения исходного массива
np.sort по двум осям: shape результата и неизменность исходного массива
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinдва целых числаRиC— число строк и столбцов. - Читает следующие
Rстрок; каждая содержит ровноCцелых чисел через пробел. Создаёт двумерный массивMчерезnp.array(..., dtype=int)формы(R, C). - До любых сортировок сохраняет копию:
M_orig = M.copy(). - Вычисляет
s0 = np.sort(M, axis=0)— каждый столбец отсортирован по возрастанию. - Вычисляет
s1 = np.sort(M, axis=1)— каждая строка отсортирована по возрастанию. - Выводит три последовательных блока, всего
2R + 3строк:
- блок 1: строка
s0 shape=<shape>, затемRстрок матрицыs0; - блок 2: строка
s1 shape=<shape>, затемRстрок матрицыs1; - блок 3: одна строка
unchanged=<bool>—True, еслиMне был изменён, то естьnp.array_equal(M, M_orig), иначе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}
Формат вывода
s0 shape=(R, C)
<строки матрицы s0, каждая — значения через пробел>
s1 shape=(R, C)
<строки матрицы s1, каждая — значения через пробел>
unchanged=<True или False>
Пример
- Ввод
2 3 3 1 4 1 5 2
- Вывод
s0 shape=(2, 3) 1 1 2 3 5 4 s1 shape=(2, 3) 1 3 4 1 2 5 unchanged=True
РешениеPython
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- NumPy argsort по axis=0: индексы сортировки столбцов
- dtype NumPy: целые и вещественные массивы, типы элементов
- NumPy shape, ndim, size и dtype: атрибуты массива и задача
- Срезы двумерного массива NumPy: строки, столбцы и шаг
- NumPy reshape и transpose: разница на примере и задача
- NumPy newaxis и squeeze: вектор-строка и вектор-столбец
