Я переводил программу из Matlab в Python.
В коде Matlab используется метод перестановки:
B = PERMUTE(A,ORDER) rearranges the dimensions of A so that they
% are in the order specified by the vector ORDER. The array produced
% has the same values as A but the order of the subscripts needed to
% access any particular element are rearranged as specified by ORDER.
% For an N-D array A, numel(ORDER)>=ndims(A). All the elements of
% ORDER must be unique.
Есть ли эквивалентный метод в Python/NumPy?
Это выполняется в transpose
в numpy.ndarray
. По умолчанию поведение отменяет порядок, но вы можете предоставить список своего собственного заказа.
mX = permute(mA, [3, 1, 2]);
, Однако transpose
в Python не удастся (поскольку форма массива не имеет третьего измерения). Есть ли решение для этого (у меня нет Numpty с rollaxes
, так что думайте Numpy 0.9.xxxx)
A = A[np.newaxis, ...]
или A = A[:, np.newaxis, :]
зависимости от того, где вы хотите новую ось. Вы можете переместить оси после этого, если это необходимо.