Python矩阵所有元素旋转90度

在计算机科学和编程中,操作二维矩阵是一项常见的任务。特别是在图像处理和游戏开发中,旋转矩阵是一个重要的功能。本文将介绍如何在Python中实现一个函数,将矩阵的所有元素旋转90度。

矩阵旋转的逻辑

矩阵的旋转可以想象为将每个元素移动到新位置。对于一个n×n的矩阵,其旋转90度的规律可以归纳为:

  • 原矩阵中的元素matrix[i][j]在旋转后的矩阵中的新位置是matrix[j][n-1-i]

简而言之,通过转置矩阵并反转每一行,即可实现90度的旋转。

代码实现

接下来,我们将通过代码示例来实现这一功能。首先,我们定义一个名为rotate_matrix的函数,该函数接收一个n×n的矩阵,并返回旋转后的矩阵。

def rotate_matrix(matrix):
    n = len(matrix)
    # 转置矩阵
    for i in range(n):
        for j in range(i, n):
            matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]

    # 反转每一行
    for i in range(n):
        matrix[i].reverse()

    return matrix

示例

我们来看看函数的具体调用及效果。假设我们有一个3×3的矩阵,如下所示:

| 1 | 2 | 3 |
|---|---|---|
| 4 | 5 | 6 |
| 7 | 8 | 9 |

调用rotate_matrix函数后,输出结果应该是:

| 7 | 4 | 1 |
|---|---|---|
| 8 | 5 | 2 |
| 9 | 6 | 3 |

完整代码如下:

def rotate_matrix(matrix):
    n = len(matrix)
    for i in range(n):
        for j in range(i, n):
            matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
    
    for i in range(n):
        matrix[i].reverse()

    return matrix

if __name__ == "__main__":
    matrix = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]
    rotated = rotate_matrix(matrix)
    for row in rotated:
        print(row)

总结

在这篇文章中,我们介绍了如何在Python中实现一个函数来旋转n×n的矩阵90度。通过转置矩阵并反转每一行,我们高效地达成了目标。这一技术在许多应用中都非常有用,例如图像旋转、矩阵变换等。

无论你是学生、开发者,还是对编程感兴趣的读者,希望本文提供的代码示例和解释能够帮助你更好地理解矩阵的旋转操作。如果有更多关于Python或数据处理的疑问,欢迎随时探讨!