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服务器拒绝服务攻击代码
Jan 16 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
python 转换 Javascript %u 字符串为python unicode的代码
Sep 06 Python
详解python中executemany和序列的使用方法
Aug 12 Python
Python实现购物车功能的方法分析
Nov 10 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
利用Python批量提取Win10锁屏壁纸实战教程
Mar 27 Python
Appium+python自动化怎么查看程序所占端口号和IP
Jun 14 Python
Python多线程及其基本使用方法实例分析
Oct 29 Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 Python
用python发送微信消息
Dec 21 Python
python实现ping命令小程序
Dec 28 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的加密方式及原理
2012/06/14 PHP
php无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
PHP中防止SQL注入方法详解
2014/12/25 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
2016/02/16 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
Python 比较两个数组的元素的异同方法
2017/08/17 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
Python3内置模块random随机方法小结
2019/07/13 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
离婚财产处理协议书
2014/09/30 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
十七岁的单车观后感
2015/06/12 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
禁毒主题班会教案
2015/08/14 职场文书
MySQL开启事务的方式
2021/06/26 MySQL
全面盘点MySQL中的那些重要日志文件
2021/11/27 MySQL
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技
零基础学java之循环语句的使用
2022/04/10 Java/Android
MySQL数据库事务的四大特性
2022/04/20 MySQL