Функция moveaxis
Функция moveaxis перемещает оси многомерного массива на новые позиции.
Первым параметром она принимает массив, вторым - исходные оси для перемещения, третьим - целевые позиции.
Функция возвращает новый массив с переставленными осями без копирования данных.
Синтаксис
np.moveaxis(arr, source, destination)
Пример
Переместим ось 0 на позицию 2 в трёхмерном массиве:
import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("Shape before:", arr.shape)
res = np.moveaxis(arr, 0, 2)
print("Shape after:", res.shape)
Результат выполнения кода:
Shape before: (2, 2, 2)
Shape after: (2, 2, 2)
Пример
Переместим ось 2 на позицию 0:
import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("Original shape:", arr.shape)
res = np.moveaxis(arr, 2, 0)
print("New shape:", res.shape)
print(res)
Результат выполнения кода:
Original shape: (2, 2, 2)
New shape: (2, 2, 2)
[[[1 5]
[3 7]]
[[2 6]
[4 8]]]
Пример
Переместим несколько осей одновременно:
import numpy as np
arr = np.zeros((3, 4, 5, 6))
print("Original shape:", arr.shape)
res = np.moveaxis(arr, [0, 1], [2, 3])
print("New shape:", res.shape)
Результат выполнения кода:
Original shape: (3, 4, 5, 6)
New shape: (5, 6, 3, 4)
Пример
Переместим ось с помощью отрицательных индексов:
import numpy as np
arr = np.zeros((2, 3, 4))
print("Original shape:", arr.shape)
res = np.moveaxis(arr, -1, 0)
print("New shape:", res.shape)
Результат выполнения кода:
Original shape: (2, 3, 4)
New shape: (4, 2, 3)