Транспонирование — это операция, которая меняет местами оси массива. Для 2D массива (матрицы) это значит: строки становятся столбцами, столбцы — строками.

В NumPy это реализуется через атрибут .T или метод transpose().

Примеры:

import numpy as np
 
# Матрица 2x3
A = np.array([[1, 2, 3],
              [4, 5, 6]])
 
A.shape   # (2, 3)
 
# Транспонирование
B = A.T
B.shape   # (3, 2)

Результат B:

[[1 4]
 [2 5]
 [3 6]]

Особенности:

  • .T не копирует данные, а создаёт view с изменёнными strides.
  • Для 1D массива (shape = (n,)) транспонирование не изменяет массив: он остаётся (n,).
  • Для nD массива (n > 2) можно задавать порядок осей через np.transpose(A, axes=(...)).

Применение:

  • Быстрая перестановка строк и столбцов
  • Подготовка массивов для линейной алгебры (dot, matmul)
  • Broadcasting с 2D массивами

Ключевая мысль: транспонирование меняет только представление осей, данные в памяти остаются на своих местах.