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实现从ftp服务器下载文件的方法
Apr 30 Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 Python
python实现颜色空间转换程序(Tkinter)
Dec 31 Python
windows下添加Python环境变量的方法汇总
May 14 Python
linux下python使用sendmail发送邮件
May 22 Python
python pygame模块编写飞机大战
Nov 20 Python
详解配置Django的Celery异步之路踩坑
Nov 25 Python
Python脚本完成post接口测试的实例
Dec 17 Python
Python配置虚拟环境图文步骤
May 20 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
python字符串拼接+和join的区别详解
Dec 03 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
当海贼王变成JOJO风
2020/03/02 日漫
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
php中计算时间差的几种方法
2009/12/31 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
jQuery使用技巧简单汇总
2013/04/18 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
使用Python判断IP地址合法性的方法实例
2014/03/13 Python
python冒泡排序简单实现方法
2015/07/09 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
Python反射的用法实例分析
2018/02/11 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
如何基于python实现归一化处理
2020/01/20 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
盛大二次面试题
2016/11/18 面试题
人力资源经理的岗位职责范本
2014/02/28 职场文书
会计稽核岗位职责
2015/04/13 职场文书
工程资料员岗位职责
2015/04/13 职场文书
党纪处分决定书
2015/06/24 职场文书
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python