📅  最后修改于: 2023-12-03 15:23:27.231000             🧑  作者: Mango
在程序设计过程中,经常需要对矩阵进行操作,其中之一就是矩阵旋转。本文将介绍如何在Python中,顺时针旋转矩阵90度。
numpy库是Python中非常重要的科学计算库,提供了强大而且简单易用的数据结构和数学函数。其中包括了旋转矩阵的函数,如下所示:
import numpy as np
# 定义原始矩阵(3行4列)
original = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# 调用旋转函数
rotated = np.rot90(original, k=1, axes=(0, 1))
# 打印旋转后的矩阵
print(rotated)
解释一下上面代码的关键部分:
np.array()
函数用来创建一个矩阵。
np.rot90()
函数用来旋转矩阵,其参数说明如下:
original
:要旋转的原始矩阵。k
:旋转次数,本文中顺时针旋转90度,所以为1。axes
:沿着哪两个轴进行旋转。对于一个二维矩阵,(0, 1)表示沿着x y轴旋转。此方法非常简便,但如果不使用numpy库的话,我们也可以使用Python内置的列表和for循环来旋转矩阵。
下面的代码片段演示了如何旋转一个矩阵:
# 定义原始矩阵(3行4列)
original = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
# 获得矩阵的行和列数
rows = len(original)
cols = len(original[0])
# 构建旋转后的矩阵
rotated = [[0] * rows for _ in range(cols)]
# 遍历初始矩阵,将元素顺时针旋转90度后放入新矩阵
for i in range(rows):
for j in range(cols):
rotated[j][rows-1-i] = original[i][j]
# 打印旋转后的矩阵
for row in rotated:
print(row)
说明一下上面代码的主要部分:
rotated = [[0] * rows for _ in range(cols)]
:先创建一个行列颠倒的空矩阵,用0
填充。rotated[j][rows-1-i] = original[i][j]
:通过循环索引,将原始矩阵相应位置的元素旋转到新矩阵的正确位置。本文讲述了如何在Python中实现顺时针旋转矩阵90度,通过numpy库和循环来完成。numpy库可以极大简化矩阵相关操作,但是如果不想使用numpy的话,那么使用Python内置的列表和for循环来计算也是一个不错的选择。