numpy.moveaxis

numpy.moveaxis(a, source, destination)[source]

Функция moveaxis() позволяет перемящать оси на новые позиции, при этом другие оси остаются на прежних местах.

Параметры:
a - массив NumPy
Массив, оси которого должны быть перемещены.
source - целое число или последовательность целых чисел
Определяет исходное положение тех осей, которые должны быть перемещены. Если это последовательность, то все целые числа должны быть уникальными.
destination - целое число или последовательность целых чисел
Определяет конечные позиции перемещаемых осей. Если это последовательность, то все целые числа должны быть уникальными.
Возвращает:
ndarray - массив NumPy
Массив с переставленными в указанном порядке осями.
Смотрите так же: rollaxis, swapaxes, transpose

Замечание

Выходной массив является представлением исходного массива.



Примеры

>>> import numpy as np
>>> 
>>> a = np.arange(24).reshape(2, 3, 4)
>>> a
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
>>> 
>>> a.shape
(2, 3, 4)
>>> 
>>>
>>> b = np.moveaxis(a, 0, 1)
>>> b
array([[[ 0,  1,  2,  3],
        [12, 13, 14, 15]],

       [[ 4,  5,  6,  7],
        [16, 17, 18, 19]],

       [[ 8,  9, 10, 11],
        [20, 21, 22, 23]]])
>>> 
>>> b.shape
(3, 2, 4)
>>> 
>>> 
>>> c = np.moveaxis(a, 2, 0)
>>> c
array([[[ 0,  4,  8],
        [12, 16, 20]],

       [[ 1,  5,  9],
        [13, 17, 21]],

       [[ 2,  6, 10],
        [14, 18, 22]],

       [[ 3,  7, 11],
        [15, 19, 23]]])
>>>
>>> c.shape
(4, 2, 3)
>>> 
>>> #  Наглядное представление перемещения осей
... a.shape
(2, 3, 4)
>>> 
>>> np.moveaxis(a, 0, 1).shape
(3, 2, 4)
>>> 
>>> np.moveaxis(a, 0, 2).shape
(3, 4, 2)
>>> 
>>> #  Числа могут быть отрицательными
... a.shape
(2, 3, 4)
>>> 
>>> np.moveaxis(a, 0, -1).shape
(3, 4, 2)
>>> 
>>> np.moveaxis(a, 0,-2).shape
(3, 2, 4)
>>> 
>>> np.moveaxis(a, -1, 0).shape
(4, 2, 3)
>>> 
>>> np.moveaxis(a, -1, -3).shape
(4, 2, 3)
>>> 
>>> 
>>> #  Использование параметров-последовательностей:
... a.shape
(2, 3, 4)
>>> 
>>> np.moveaxis(a, [0, 1, 2], [2, 1, 0]).shape
(4, 3, 2)
>>> 
>>> np.moveaxis(a,[-1, -2, -3], [-3, -2, -1]).shape
(4, 3, 2)
>>> 
>>> np.moveaxis(a, [0, -1], [-1, 0]).shape
(4, 3, 2)
>>> 
>>> np.moveaxis(a, [0, 1], [1, 2]).shape
(4, 2, 3)
>>> 
>>> np.moveaxis(a, [0, 1], [-3, -2]).shape
(2, 3, 4)