Метод swapaxes
Метод swapaxes класса ndarray меняет местами две указанные оси многомерного массива. Первым параметром метод принимает номер первой оси, вторым - номер второй оси. Метод возвращает новый массив с переставленными размерностями, при этом исходный массив остаётся неизменным.
Синтаксис
arr.swapaxes(axis1, axis2)
Пример
Давайте создадим трёхмерный массив и поменяем местами первую и третью оси:
import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("Original array shape:", arr.shape)
print(arr)
res = arr.swapaxes(0, 2)
print("\nAfter swapaxes(0, 2) shape:", res.shape)
print(res)
Результат выполнения кода:
Original array shape: (2, 2, 2)
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
After swapaxes(0, 2) shape: (2, 2, 2)
[[[1 5]
[3 7]]
[[2 6]
[4 8]]]
Пример
Давайте поменяем местами две оси в двумерном массиве, что эквивалентно транспонированию:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("Original array:")
print(arr)
res = arr.swapaxes(0, 1)
print("\nAfter swapaxes(0, 1):")
print(res)
Результат выполнения кода:
Original array:
[[1 2 3]
[4 5 6]]
After swapaxes(0, 1):
[[1 4]
[2 5]
[3 6]]
Пример
Давайте поменяем местами оси в четырёхмерном массиве и посмотрим на изменение формы:
import numpy as np
rng = np.random.default_rng(0)
arr = rng.integers(0, 10, size=(2, 3, 4, 5))
print("Original shape:", arr.shape)
res = arr.swapaxes(1, 3)
print("After swapaxes(1, 3) shape:", res.shape)
Результат выполнения кода:
Original shape: (2, 3, 4, 5)
After swapaxes(1, 3) shape: (2, 5, 4, 3)