Обмен осей в NumPy
Чтобы поменять местами две оси массива, используют
функцию swapaxes.
Она указывает
номера двух осей, которые нужно
обменять. Остальные оси остаются
на своих местах, меняются только
длины на двух выбранных позициях.
Возьмём блок формы (2, 3, 4)
и обменяем первую ось с последней.
Выведем форму до обмена и после:
import numpy as np
block = np.arange(24).reshape(2, 3, 4)
print(block.shape) # выведет (2, 3, 4)
swapped = np.swapaxes(block, 0, 2)
print(swapped.shape) # выведет (4, 3, 2)
Средняя ось сохранила длину 3,
а первый и третий размеры поменялись
местами. То же правило работает
и для других пар осей:
import numpy as np
cube = np.ones((2, 5, 3))
print(cube.shape) # выведет (2, 5, 3)
swapped = np.swapaxes(cube, 1, 2)
print(swapped.shape) # выведет (2, 3, 5)
Создайте массив формы (3, 2, 4)
из нулей. Обменяйте первую и
последнюю ось и выведите форму
до и после.
Создайте массив формы (1, 4, 2)
из чисел 10. Обменяйте вторую
и третью ось и выведите обе формы.