Метод transpose
Метод transpose класса ndarray возвращает транспонированную версию массива. Для двумерных массивов операция аналогична стандартному транспонированию матриц, когда строки становятся столбцами. Для многомерных массивов метод позволяет произвольно переставлять оси с помощью кортежа осей или сокращённо через атрибут T. Метод возвращает новый массив, а не изменяет исходный.
Синтаксис
arr.transpose([axes])
Необязательный параметр axes - это кортеж целых чисел, определяющий новый порядок осей. Если параметр не передан, метод транспонирует массив, меняя все оси местами в обратном порядке.
Пример
Давайте создадим двумерный массив и транспонируем его с помощью метода transpose:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
res = arr.transpose()
print(res)
Результат выполнения кода:
[[1 4]
[2 5]
[3 6]]
В результате исходная матрица размера 2x3 превратилась в матрицу размера 3x2.
Пример
Транспонирование можно выполнить короче с помощью атрибута T, который работает аналогично:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
res = arr.T
print(res)
Результат выполнения кода:
[[1 4]
[2 5]
[3 6]]
Атрибут T возвращает тот же результат, но не принимает аргументов для перестановки осей.
Пример
Для трёхмерного массива можно явно указать новый порядок осей. Создадим трёхмерный массив и переставим оси с помощью кортежа:
import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
res = arr.transpose((1, 0, 2))
print(res)
Результат выполнения кода:
[[[1 2]
[5 6]]
[[3 4]
[7 8]]]
Кортеж (1, 0, 2) означает, что ось 1 становится первой осью, ось 0 - второй, а ось 2 остаётся на месте. Такой подход удобен для работы с многомерными данными, где оси могут иметь различный смысл.
Пример
Если вызвать transpose без параметров для трёхмерного массива, оси меняются местами в обратном порядке:
import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
res = arr.transpose()
print(res)
Результат выполнения кода:
[[[1 5]
[3 7]]
[[2 6]
[4 8]]]
Оси поменялись местами в порядке (2, 1, 0), что соответствует полной перестановке.