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中os和shutil模块实用方法集锦
May 13 Python
Python程序设计入门(2)变量类型简介
Jun 16 Python
理解python正则表达式
Jan 15 Python
python numpy格式化打印的实例
May 14 Python
python字符串常用方法
Jun 14 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
使用Template格式化Python字符串的方法
Jan 22 Python
使用Django搭建一个基金模拟交易系统教程
Nov 18 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
jupyter notebook中新建cell的方法与快捷键操作
Apr 22 Python
详解运行Python的神器Jupyter Notebook
Jun 03 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 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 if 想到的些问题
2008/03/22 PHP
php file_get_contents函数轻松采集html数据
2010/04/22 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
Javascript 继承机制实例
2009/08/12 Javascript
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
跟我学习javascript的函数和函数表达式
2015/11/16 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
Vue中&quot;This dependency was not found&quot;问题的解决方法
2018/06/19 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
[08:40]Navi Vs Newbee
2018/06/07 DOTA
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
python装饰器代替set get方法实例
2019/12/19 Python
python标准库os库的函数介绍
2020/02/12 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
Python colormap库的安装和使用详情
2020/10/06 Python
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
青春寄语大全
2014/04/09 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
开学第一周值周总结
2015/07/16 职场文书
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python