вращение матрицы по часовой стрелке - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть следующий код, который поворачивает матрицу против часовой стрелки на 45 градусов, и не могу понять, как заставить ее двигаться по часовой стрелке. (Код, предоставленный Sandeep Sharma на Поворот двумерного массива )

def rotate45(array, clockwise = False):
rot = []
if clockwise == False:
    for i in range(len(array)):
        rot.append([0] * (len(array)+len(array[0])-1))
        for j in range(len(array[i])):
            rot[i][int(i + j)] = array[i][j]

# Thats where something should be changed, but I cant figure out what
else:
    for i in range(len(array)):
        rot.append([0] * (len(array)+len(array[0])-1))
        for j in range(len(array[i])):
            rot[i][int(i + j)] = array[i][j]

return rot

1 Ответ

0 голосов
/ 01 ноября 2018

Как предлагается в связанном посте, вы не можете использовать scipy.ndimage.rotate?

Например:

from scipy.ndimage import rotate
def rotateClockwise45(array):
    return rotate(array, -45)

# Rotate any amount:
# Use negative numbers for clockwise, positive for counter clockwise.
def rotate(array, angle):
    return rotate(array, angle)

Кроме того, вы можете установить флаг изменения формы в false при вызове функции поворота, если вы хотите сохранить исходные входные размеры. Например:

rotate(array, angle, reshape=False)
...