Ну, не имеет значения, вращаете ли вы массив вокруг правого нижнего угла, верхнего левого угла или любой другой точки: все это просто вращения . Единственный аспект, который имеет значение немного больше, - это направление, в котором вы хотите, чтобы массив вращался по часовой стрелке или против часовой стрелки, и, фактически, вы можете получить один, используя другой: поворот на 90 градусов по часовой стрелке - это то же самое, что поворот на 270 градусов. в противоположном направлении.
Если вы хотите повернуть массив на 90 градусов по часовой стрелке , используйте np.rot90
, но скажите numpy
, чтобы повернуть массив 3 раза и, если вы хотите , повернуть массив на 90 градусов. -clockwise использовать np.rot90
, передавая 1
или ничего (кроме массива, конечно):
np.rot90(array) # 90 deg CCW
np.rot90(array, 1) # 90 deg CCW
np.rot90(array, 3) # 90 deg CW
Пример
import numpy as np
array = np.arange(15).reshape((3, 5))
print(array)
print(np.rot90(array, 1))
print(np.rot90(array, 3))
Исходный массив
array([
[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]
])
Поворот 1 раз (на 90 градусов против часовой стрелки)
array([
[ 4, 9, 14],
[ 3, 8, 13],
[ 2, 7, 12],
[ 1, 6, 11],
[ 0, 5, 10]
])
Поворот 3 раза (на 90 градусов по часовой стрелке)
array([
[10, 5, 0],
[11, 6, 1],
[12, 7, 2],
[13, 8, 3],
[14, 9, 4]
])