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的Tornado框架结合memcached页面改善博客性能
Apr 24 Python
在Django的URLconf中进行函数导入的方法
Jul 18 Python
Python win32com 操作Exce的l简单方法(必看)
May 25 Python
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
python3中的md5加密实例
May 29 Python
python dict 相同key 合并value的实例
Jan 21 Python
Python List cmp()知识点总结
Feb 18 Python
python实践项目之监控当前联网状态详情
May 23 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
2020版Python学习路线图(附学习资料)
Sep 15 Python
python调用摄像头的示例代码
Sep 28 Python
Python爬虫进阶之Beautiful Soup库详解
Apr 29 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查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
2010/11/25 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
python使用cookielib库示例分享
2014/03/03 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
Python 中迭代器与生成器实例详解
2017/03/29 Python
浅谈Django REST Framework限速
2017/12/12 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
基于树莓派的语音对话机器人
2019/06/17 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
游戏商店:Eneba
2020/04/25 全球购物
养殖项目策划书范文
2014/01/13 职场文书
美德少年事迹材料
2014/01/23 职场文书
《春天来了》教学反思
2014/04/07 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
2014年国庆节寄语
2014/09/19 职场文书
骨干教师事迹材料
2014/12/17 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
python编写五子棋游戏
2021/05/25 Python