使用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 相关文章推荐
pyqt和pyside开发图形化界面
Jan 22 Python
Python实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 Python
python 实现对文件夹内的文件排序编号
Apr 12 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
浅谈Series和DataFrame中的sort_index方法
Jun 07 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
Dec 14 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
May 08 Python
将keras的h5模型转换为tensorflow的pb模型操作
May 25 Python
TensorFlow-gpu和opencv安装详细教程
Jun 30 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
Python之matplotlib绘制饼图
Apr 13 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
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
php使用PDO执行SQL语句的方法分析
2017/02/16 PHP
js实现checkbox全选和反选示例
2014/05/01 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
js倒计时显示实例
2016/12/11 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
security.js实现的RSA加密功能示例
2018/06/06 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
剖析Python的Twisted框架的核心特性
2016/05/25 Python
python 构造三维全零数组的方法
2018/11/12 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
将python安装信息加入注册表的示例
2019/11/20 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
AOP的定义以及作用
2013/09/08 面试题
食堂个人先进事迹
2014/01/22 职场文书
安全生产活动月方案
2014/03/09 职场文书
演讲稿的写法
2014/05/19 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
九一八事变演讲稿
2014/09/05 职场文书
小鞋子观后感
2015/06/05 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫
Vue.Draggable实现交换位置
2022/04/07 Vue.js