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网络编程学习笔记(三):socket网络服务器
Jun 09 Python
python获取从命令行输入数字的方法
Apr 29 Python
Python生成随机验证码的两种方法
Dec 22 Python
python安装oracle扩展及数据库连接方法
Feb 21 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
如何用Python制作微信好友个性签名词云图
Jun 28 Python
python列表,字典,元组简单用法示例
Jul 11 Python
Python爬虫 urllib2的使用方法详解
Sep 23 Python
python实现大量图片重命名
Mar 23 Python
Jupyter notebook无法导入第三方模块的解决方式
Apr 15 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
Apr 27 Python
详解Python中的进程和线程
Jun 23 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实现智能文件类型检测的实现代码
2011/08/02 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
js操作table示例(个人心得)
2013/11/29 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
Angular实现form自动布局
2016/01/28 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
javascript学习之json入门
2016/12/22 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
vue中轮训器的使用
2019/01/27 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
python实现识别手写数字 python图像识别算法
2020/03/23 Python
python sys.argv[]用法实例详解
2018/05/25 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
2018/12/28 Python
python画图的函数用法以及技巧
2019/06/28 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
个人求职信范文分享
2013/12/13 职场文书
小学毕业感言150字
2014/02/05 职场文书
合作协议书范本
2014/04/17 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
环保建议书100字
2014/05/14 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书