Транспонирование массива и фактическое изменение порядка памяти

У меня есть трехмерный массив NumPy, например

a = np.random.random((2,3,5))

Я хотел бы перенести две последние оси, т.е.

b = a.transpose(0,2,1)

Тем не менее, я не хочу просмотра с крутыми шагами! Я хочу на самом деле скопировать массив и переупорядочить его в памяти. Каков наилучший способ достичь этого?

Ответ 1

Метод copy() по умолчанию будет переупорядочиваться до C-смежного порядка:

b = a.transpose(0,2,1).copy()