使用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 算法 排序实现快速排序
Jun 05 Python
python daemon守护进程实现
Aug 27 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
Feb 16 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
Oct 07 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
numpy.random.seed()的使用实例解析
Feb 03 Python
对numpy.append()里的axis的用法详解
Jun 28 Python
详解Pandas之容易让人混淆的行选择和列选择
Jul 10 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
python实现连连看游戏
Feb 14 Python
django rest framework serializers序列化实例
May 13 Python
Python如何使用ElementTree解析xml
Oct 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 XML备份Mysql数据库
2009/05/27 PHP
PHP XML数据解析代码
2010/05/26 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
Node.js简单入门前传
2017/08/21 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
2018/03/23 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
python+pyqt5编写md5生成器
2019/03/18 Python
Python函数中的可变长参数详解
2019/09/12 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
python numpy中cumsum的用法详解
2019/10/17 Python
python性能测试工具locust的使用
2020/12/28 Python
《童趣》教学反思
2014/02/19 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
家长会感言
2015/08/01 职场文书
mysql部分操作
2021/04/05 MySQL
python神经网络编程之手写数字识别
2021/05/08 Python
Python学习之迭代器详解
2022/04/01 Python