Задача курса
NumPy reshape и transpose: одинаковая форма, разные значения
Курс «NumPy и pandas: практический тренажёр» · урок «Изменение формы: reshape, transpose, добавление и удаление осей»
Проверьте на конкретном массиве, почему reshape и .T нельзя считать взаимозаменяемыми операциями.
Условие
.T и reshape: одинаковая форма, разное расположение значений
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая на одном массиве показывает разницу между транспонированием и изменением формы:
- Читает два целых числа
rowsиcols. Гарантируется, что они различаются и оба не меньше 2. - Создаёт
flat = np.arange(rows * cols). - Создаёт
matформы(rows, cols)черезreshape. - Создаёт
via_t = mat.T. - Независимо создаёт
via_reshape = flat.reshape(cols, rows). - Печатает заголовок
T:, затем сам массивvia_t, заголовокreshape:, затем сам массивvia_reshape. - Последней строкой печатает
same_shape=True, если формы результатов совпадают.
Не переставляйте значения вручную. В этой задаче важно увидеть: .T и reshape(cols, rows) дают одинаковую форму, но располагают исходные значения по-разному.
Ввод и вывод
Программа читает данные из stdin и пишет результат в stdout.
Формат ввода
Одна строка: два различных целых числа rows cols, каждое не меньше 2.
Формат вывода
Сначала T: и напечатанный NumPy-массив via_t, затем reshape: и массив via_reshape, затем строка same_shape=True.
Примеры
Пример 1
- Ввод
2 3
- Ожидаемый результат
T: [[0 3] [1 4] [2 5]] reshape: [[0 1] [2 3] [4 5]] same_shape=True
