Задача курса

NumPy reshape и transpose: одинаковая форма, разные значения

Курс «NumPy и pandas: практический тренажёр» · урок «Изменение формы: reshape, transpose, добавление и удаление осей»

Проверьте на конкретном массиве, почему reshape и .T нельзя считать взаимозаменяемыми операциями.

Условие

.T и reshape: одинаковая форма, разное расположение значений

Что уже дано

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

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

Напишите программу, которая на одном массиве показывает разницу между транспонированием и изменением формы:

  1. Читает два целых числа rows и cols. Гарантируется, что они различаются и оба не меньше 2.
  2. Создаёт flat = np.arange(rows * cols).
  3. Создаёт mat формы (rows, cols) через reshape.
  4. Создаёт via_t = mat.T.
  5. Независимо создаёт via_reshape = flat.reshape(cols, rows).
  6. Печатает заголовок T:, затем сам массив via_t, заголовок reshape:, затем сам массив via_reshape.
  7. Последней строкой печатает 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

Попробуйте решить

РешениеPython
Без регистрации · результат не сохраняется