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 相关文章推荐
仅利用30行Python代码来展示X算法
Apr 01 Python
Python的Django框架中的数据过滤功能
Jul 17 Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 Python
python读取文本中数据并转化为DataFrame的实例
Apr 10 Python
对pandas的层次索引与取值的新方法详解
Nov 06 Python
Python小工具之消耗系统指定大小内存的方法
Dec 03 Python
提升Python程序性能的7个习惯
Apr 14 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
Dec 04 Python
pytorch通过训练结果的复现设置随机种子
Jun 01 Python
Python+腾讯云服务器实现每日自动健康打卡
Dec 06 Python
Python进程池与进程锁之语法学习
Apr 11 Python
python实现商品进销存管理系统
May 30 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数组函数序列之array_intersect() 返回两个或多个数组的交集数组
2011/11/10 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
PHP排序算法类实例
2015/06/17 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
让你一句话理解闭包(简单易懂)
2016/06/03 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
一百行python代码将图片转成字符画
2021/02/19 Python
Django组件cookie与session的具体使用
2019/06/05 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
为什么说python适合写爬虫
2020/06/11 Python
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
Shopee越南:东南亚与台湾电商平台
2019/02/03 全球购物
摄影助理岗位职责
2014/02/07 职场文书
竞聘报告优秀范文
2014/11/06 职场文书