使用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实现多行注释的另类方法
Aug 22 Python
Python深入学习之上下文管理器
Aug 31 Python
windows上安装Anaconda和python的教程详解
Mar 28 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
Centos 升级到python3后pip 无法使用的解决方法
Jun 12 Python
anaconda中更改python版本的方法步骤
Jul 14 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
tensorflow 实现自定义layer并添加到计算图中
Feb 04 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 Python
Django haystack实现全文搜索代码示例
Nov 28 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 开发工具
2006/12/06 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
Laravel下生成验证码的类
2017/11/15 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
Javascript 两个窗体之间传值实现代码
2009/09/25 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
JS重载实现方法分析
2016/12/16 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
Python实现数据库编程方法详解
2015/06/09 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
python中嵌套函数的实操步骤
2019/02/27 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
高中毕业生自我鉴定例文
2013/12/29 职场文书
创业计划书怎样才能打动风投
2014/01/01 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
优乐美广告词
2014/03/14 职场文书
幼儿园评语大全
2014/04/17 职场文书
人事任命书范文
2014/06/04 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis