numpy.rollaxis
numpy.rollaxis(a, axis, start=0)
Функция rollaxis() перемещает указанную ось, пока она не окажется в заданном положении.
-
- a - массив Numpy
- Массив ось которого должна быть перемещена.
- axis - целое число
- Определяет ось массива, которая должна быть перемещена назад.
- start - целое число (необязательный)
- Этот параметр определяет место остановки оси, т.е. ось перемещается назад, пока не окажется перед указанным значением. По умолчанию
start = 0
, что приводит к остановке перемещения.
-
- ndarray - массив NumPy
- Массив, ось которого смещена в указанное место, при этом положение других осей относительно друг друга в нем не изменено.
Замечание
Данная функция поддерживается для обратной совместимости с более ранними версиями, поэтому предпочтительнее использовать функцию moveaxis
, которая была введена в NumPy 1.11. С версии 1.10 всегда возвращается представление исходного массива, для более ранних версий представление возвращается только в том случае, если порядок осей изменяется, если нет (start = 0
), то возвращается исходный массив.
Примеры
>>> 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.rollaxis(a, 2, 0)
>>> b
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]]])
>>>
>>> b.shape
(4, 2, 3)
>>>
>>> # Более наглядные примеры
... a.shape
(2, 3, 4)
>>>
>>> np.rollaxis(a, 2, 0).shape
(4, 2, 3)
>>>
>>> np.rollaxis(a, 2, 1).shape
(2, 4, 3)
>>>
>>> np.rollaxis(a, 2, 2).shape # Не приведет к ошибке
(2, 3, 4)
>>> np.rollaxis(a, 2, 3).shape # Тоже не приведет к ошибке
(2, 3, 4)
>>>
>>> np.rollaxis(a, 2, 5).shape # Приведет к ошибке
>>>
>>>
>>> a.shape
(2, 3, 4)
>>>
>>> np.rollaxis(a, 0, 1).shape
(2, 3, 4)
>>> np.rollaxis(a, 0, 2).shape
(3, 2, 4)
>>> np.rollaxis(a, 0, 3).shape
(3, 4, 2)
>>> np.rollaxis(a, 0, -1).shape
(3, 2, 4)
>>> np.rollaxis(a, 0, -2).shape
(2, 3, 4)
>>> np.rollaxis(a, 0, -3).shape
(2, 3, 4)
>>> np.rollaxis(a, 0, -4).shape # Приведет к ошибке
>>>
>>> a.shape
(2, 3, 4)
>>> np.rollaxis(a, 0).shape
(2, 3, 4)
>>> np.rollaxis(a, 1).shape
(3, 2, 4)
>>> np.rollaxis(a, 2).shape
(4, 2, 3)