python实现回旋矩阵方式(旋转矩阵)


Posted in Python onDecember 04, 2019

我们知道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 相关文章推荐
巧用Python装饰器 免去调用父类构造函数的麻烦
May 18 Python
Python中使用strip()方法删除字符串中空格的教程
May 20 Python
使用Python简单的实现树莓派的WEB控制
Feb 18 Python
Python 中的 else详解
Apr 23 Python
带你了解python装饰器
Jun 15 Python
基于数据归一化以及Python实现方式
Jul 11 Python
python zip()函数使用方法解析
Oct 31 Python
Python基于class()实现面向对象原理详解
Mar 26 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 Python
Python3合并两个有序数组代码实例
Aug 11 Python
详解KMP算法以及python如何实现
Sep 18 Python
python 录制系统声音的示例
Dec 21 Python
在Django下创建项目以及设置settings.py教程
Dec 03 #Python
Django自带的加密算法及加密模块详解
Dec 03 #Python
python Opencv计算图像相似度过程解析
Dec 03 #Python
django 中使用DateTime常用的时间查询方式
Dec 03 #Python
在django中自定义字段Field详解
Dec 03 #Python
python 实现单通道转3通道
Dec 03 #Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 #Python
You might like
PHP的开发框架的现状和展望
2007/03/16 PHP
如何使用Strace调试工具
2013/06/03 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
jQuery 表单验证扩展(四)
2010/10/20 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
javascript简单实现命名空间效果
2014/03/06 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
js数组的操作指南
2014/12/28 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
angularjs实现简单的购物车功能
2017/09/21 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
Python实现简易Web爬虫详解
2018/01/03 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
python3.8下载及安装步骤详解
2020/01/15 Python
5款实用的python 工具推荐
2020/10/13 Python
公益广告宣传方案
2014/02/28 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
Python四款GUI图形界面库介绍
2022/06/05 Python