首页 > 解决方案 > 90° 矩阵旋转 Python

问题描述

我不明白为什么原始 Matrix 的检索值不是一个好值。例如,Matrix[0,3] 的值应该给出 3 但给出 0,这样我就无法获得正确的 90° 矩阵旋转:

import numpy as np
x = np.matrix(np.arange(16).reshape((4,4)))
print(x)

def rotate_90(matrix):
    rot_Mat = matrix
    len = matrix.shape[0]
    # len_range = range(len)
    # rev_range = reversed(len_range)
    for i in range(0, len):
        for j in range(0, len):

            value = matrix[i,j]
            print(i , j , value)
            
            rot_Mat[j,len - i -1] = value
    print(rot_Mat)

rotate_90(x)

标签: pythonnumpymatrix

解决方案


rot_Mat = matrix

这不会创建新数组。rot_Mat与 是相同的数组matrix,因此您在读取它们时会覆盖这些值。

要创建具有相同形状的empty_like数组,请使用:

rot_Mat = np.empty_like(matrix)

推荐阅读