使用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翻译软件实现代码(使用google api完成)
Nov 26 Python
python生成指定长度的随机数密码
Jan 23 Python
Python MySQLdb Linux下安装笔记
May 09 Python
python简单判断序列是否为空的方法
Jun 30 Python
Python爬虫爬验证码实现功能详解
Apr 14 Python
python实现textrank关键词提取
Jun 22 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
Python何时应该使用Lambda函数
Jul 02 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
Python Pandas数据中对时间的操作
Jul 30 Python
利用python在excel中画图的实现方法
Mar 17 Python
python3实现无权最短路径的方法
May 12 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 getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
老生常谈javascript中逻辑运算符&amp;&amp;和||的返回值问题
2017/04/13 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
vue实现评价星星功能
2020/06/30 Javascript
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
python读取word文档的方法
2015/05/09 Python
python出现&quot;IndentationError: unexpected indent&quot;错误解决办法
2017/10/15 Python
django 修改server端口号的方法
2018/05/14 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
Pytorch释放显存占用方式
2020/01/13 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
出国留学担保书
2014/05/20 职场文书
主题团日活动总结
2014/06/25 职场文书
通信工程求职信
2014/07/16 职场文书
爱心募捐感谢信
2015/01/22 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
追讨欠款律师函
2015/05/27 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python