使用numpy实现矩阵的翻转(flip)与旋转


Posted in Python onJune 03, 2021

numpy.flip(m, axis=None)

Reverse the order of elements in an array along the given axis.

The shape of the array is preserved, but the elements are reordered.

把m在axis维度进行切片,并把这个维度的index进行颠倒

示例

随机生成一个二维数组

import  numpy as np
a=np.random.randint(1,9,size=9).reshape((3,3))

[[5 8 6]
[3 1 7]
[8 7 8]]

axis=0:上下翻转,意味着把行看成整体,行的顺序发生颠倒,每一行的元素不发生改变

print(np.flip(a,axis=0))

[[8 7 8]
[3 1 7]
[5 8 6]]

axis=1:左右翻转,意味着把列看成整体,列的顺序发生颠倒,每一列的元素不发生改变

print(np.flip(a,axis=1))

[[6 8 5]
[7 1 3]
[8 7 8]]

Numpy矩阵的旋转

使用skimage.io读出来的图片是numpy.darray格式,掌握numpy矩阵的旋转与翻转,可实现数据增广(data augmentation)。

可用rot90函数实现,例子如下:

import numpy as np
mat = np.array([[1,3,5],
                [2,4,6],
                [7,8,9]
                ])
print mat, "# orignal"
mat90 = np.rot90(mat, 1)
print mat90, "# rorate 90 <left> anti-clockwise"
mat90 = np.rot90(mat, -1)
print mat90, "# rorate 90 <right> clockwise"
mat180 = np.rot90(mat, 2)
print mat180, "# rorate 180 <left> anti-clockwise"
mat270 = np.rot90(mat, 3)
print mat270, "# rorate 270 <left> anti-clockwise"

如果mat是图片,那么可视化效果更好。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python三元运算符实现方法
Dec 17 Python
python使用rsa加密算法模块模拟新浪微博登录
Jan 22 Python
Python中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
HTML中使用python屏蔽一些基本功能的方法
Jul 07 Python
Python编程之微信推送模板消息功能示例
Aug 21 Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 Python
详解python读取和输出到txt
Mar 29 Python
python调试神器PySnooper的使用
Jul 03 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
numpy.random.shuffle打乱顺序函数的实现
Sep 10 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 Python
浅谈python数据类型及其操作
May 25 Python
详解Python生成器和基于生成器的协程
实例讲解Python中sys.argv[]的用法
Jun 03 #Python
Django与数据库交互的实现
Jun 03 #Python
Python代码风格与编程习惯重要吗?
Jun 03 #Python
python 经纬度求两点距离、三点面积操作
Jun 03 #Python
如何使用PyCharm及常用配置详解
python for循环赋值问题
Jun 03 #Python
You might like
php记录日志的实现代码
2011/08/08 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
js function使用心得
2010/05/10 Javascript
javascript 事件绑定问题
2011/01/01 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
详解angular中通过$location获取路径(参数)的写法
2017/03/21 Javascript
在vue项目中,使用axios跨域处理
2018/03/07 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
python分析作业提交情况
2017/11/22 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
营业员演讲稿
2013/12/30 职场文书
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
无传销社区工作方案
2014/05/13 职场文书
财务会计专业求职信
2014/06/09 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
校友回访母校寄语
2015/02/26 职场文书
php中pcntl_fork详解
2021/04/01 PHP
浅谈Python项目的服务器部署
2021/04/25 Python
Python Parser的用法
2021/05/12 Python
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers