numpy.rot90

numpy.rot90(a, k = 1, axes = (0, 1))

Функция rot90() поворачивает массив на 90 градусов в плоскости указанных осей, при этом сам поворот осуществляется в направлении от первой оси ко второй.

Параметры:
a - подобный массиву объект
Массив NumPy или любой объект который может быть преобразован в массив NumPy, при этом входной массив должен иметь не менее двух измерений.
k - целое число (необязательный)
Определяет количество поворотов, k = 1 (по умолчанию) соответствует повороту на 90 градусов, k = 2 соответствует 180 градусам и т.д.
axes - подобный массиву объект (необязательный)
Последовательность из двух целых чисел - номеров осей которые определяют плоскость вращения. Числа (оси) должны быть разными. По умолчанию axes = (0, 1)
Возвращает:
ndarray - массив NumPy
Представление повернутого массива a.
Смотрите так же: roll, flip, fliplr, flipud

Замечание

Если указанные оси поменять местами то это изменит направление поворота, например, rot90(m, k = 1, axes = (1,0)) и rot90(m, k = 1, axes = (0,1)) будут вращать массив в разных направлениях. Использование в качестве параметра k отрицательных чисел так же изменит направление поворота на противоположное.



Примеры

>>> import numpy as np
>>> 
>>> a = np.array([[0,1,0],[2,0,3],[0,4,0]])
>>> a
array([[0, 1, 0],
       [2, 0, 3],
       [0, 4, 0]])
>>> 
>>> #  Поворот на 90 градусов против часовой стрелки
... np.rot90(a)     #  По умолчанию k = 1, axes = (0, 1)
array([[0, 3, 0],
       [1, 0, 4],
       [0, 2, 0]])
>>> 
>>> #  Поворот на 90 градусов по часовой стрелки
... np.rot90(a, k = -1)    #  Эквивалентно np.rot90(a, axes = (1, 0))
array([[0, 2, 0],
       [4, 0, 1],
       [0, 3, 0]])
>>> 
>>>
>>> c = np.array([[1,2,3],[4,5,6]])
>>> 
>>> c
array([[1, 2, 3],
       [4, 5, 6]])
>>> 
>>> #  Вращение может приводить к изменению формы массива
... np.rot90(c)
array([[3, 6],
       [2, 5],
       [1, 4]])
>>>    
>>>
>>> b = np.array([[[1,1],[2,2]],[[3,3],[4,4]]])
>>> 
>>> b
array([[[1, 1],
        [2, 2]],

       [[3, 3],
        [4, 4]]])
>>>
>>> np.rot90(b, k = 1, axes = (0, 1))
array([[[2, 2],
        [4, 4]],

       [[1, 1],
        [3, 3]]])
>>>
>>> np.rot90(b, k = 1, axes = (0, 2))
array([[[1, 3],
        [2, 4]],

       [[1, 3],
        [2, 4]]])
>>>
>>> np.rot90(b, k = 1, axes = (1, 2))
array([[[1, 2],
        [1, 2]],

       [[3, 4],
        [3, 4]]])