numpy.moveaxis
numpy.moveaxis(a, source, destination)[source]
Функция moveaxis() позволяет перемящать оси на новые позиции, при этом другие оси остаются на прежних местах.
-
- a - массив NumPy
- Массив, оси которого должны быть перемещены.
- source - целое число или последовательность целых чисел
- Определяет исходное положение тех осей, которые должны быть перемещены. Если это последовательность, то все целые числа должны быть уникальными.
- destination - целое число или последовательность целых чисел
- Определяет конечные позиции перемещаемых осей. Если это последовательность, то все целые числа должны быть уникальными.
-
- ndarray - массив NumPy
- Массив с переставленными в указанном порядке осями.
Замечание
Выходной массив является представлением исходного массива.
Примеры
>>> 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)