Python实现回旋矩阵(旋转矩阵)的完整代码解析

Felix
Felix
发布时间:2026-10-13| 5人浏览过
原创

本文介绍如何在Python中利用numpy库实现回旋矩阵(旋转矩阵)。通过创建n*m全零矩阵,按顺时针方向逐层填充数字。文章详细解析了外层循环处理整圈数据与最后一个元素特殊情况的逻辑,提供了完整的Python代码示例及运行结果分析。

Python实现回旋矩阵的代码解析

Python原生数据结构中并不直接包含数组类型,因此要实现回旋矩阵,首先需导入numpy库。该库是一个由多维数组对象及处理数组例程集合构成的Python扩展程序库,专门用于执行数组算术和逻辑运算。

实现思路如下:

首先构建一个n行m列、元素全为零的矩阵,随后依据旋转规律依次替换其中的数值。

最外层的循环负责替换一圈数据,该圈数据在数组中呈现矩形形状。分析可知,最后一轮循环存在两种可能的情况:

1. 完整替换一圈(矩形)数据。

2. 仅替换单个数据。

若为第一种情况,循环可正常运行;若为第二种情况,则需添加if语句进行判断。由于最后一轮大循环仅需替换一个数据,只需确保其走完第一个小循环后,最后一个被替换的元素值等于理论上的最后一个元素值即可。


import numpy as np
def rotary_matrix(n,m):
 array=np.zeros((n,m))
 #起始点
 x=y=0
 ret=array[x][y]=1
 #设置一个变量i用来在循环中判断是否需要旋转矩阵
 i = 0
 while ret < n*m:
  #从上边一行开始由左到右添加元素
  while y<m-1-i:
   y+=1
   ret+=1
   array[x][y]=ret
   
  #若ret等于最后一个元素的值,则表示所有元素添加完毕,这时候可以退出循环
  if ret == n * m:
   break
   
  # 从右边一列开始由上到下添加元素
  while x<n-1-i:
   x+=1
   ret+=1
   array[x][y] = ret
  # 从下边一行开始由右到左添加元素
  while y>0+i:
   y-=1
   ret+=1
   array[x][y]=ret
  # 从左边一列开始由下到上添加元素
  while x>0+1+i:
   x-=1
   ret+=1
   array[x][y] = ret
   
  i+=1
 print(array)

以上即为Python实现回旋矩阵(旋转矩阵)的完整内容,供读者参考。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。