使用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+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
Python使用分布式锁的代码演示示例
Jul 30 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
解析python实现Lasso回归
Sep 11 Python
Python partial函数原理及用法解析
Dec 11 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 Python
小 200 行 Python 代码制作一个换脸程序
May 12 Python
Python同时处理多个异常的方法
Jul 28 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
用python写PDF转换器的实现
Oct 29 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
Jan 05 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
Jan 29 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
咖啡知识大全
2021/03/03 新手入门
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
py2exe 编译ico图标的代码
2013/03/08 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
python实现二维插值的三维显示
2018/12/17 Python
python实现五子棋小游戏
2020/03/25 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
2020/06/15 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
Java软件工程师综合面试题笔试题
2013/09/08 面试题
怎样写留学自荐信
2013/11/11 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
Win11查看设备管理器
2022/04/19 数码科技