使用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 初始化多维数组代码
Sep 06 Python
python调用cmd复制文件代码分享
Dec 27 Python
python中Flask框架简单入门实例
Mar 21 Python
python类中super()和__init__()的区别
Oct 18 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
Python设计模式之中介模式简单示例
Jan 09 Python
快速了解python leveldb
Jan 18 Python
python opencv旋转图像(保持图像不被裁减)
Jul 26 Python
使用python判断你是青少年还是老年人
Nov 29 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Apr 01 Python
Python 爬取淘宝商品信息栏目的实现
Feb 06 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合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
php下连接mssql2005的代码
2011/01/17 PHP
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
jqgrid实现简单的单行编辑功能
2017/09/30 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
Python兔子毒药问题实例分析
2015/03/05 Python
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
Python pickle模块用法实例分析
2015/05/27 Python
在python 中实现运行多条shell命令
2019/01/07 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
Python3离线安装Requests模块问题
2019/10/13 Python
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
C语言中break与continue的区别
2012/07/12 面试题
Why do we need Unit test
2013/01/03 面试题
高分子材料个人求职信范文
2013/09/25 职场文书
大专毕业生自我鉴定
2013/11/21 职场文书
幼儿教师求职信
2014/05/24 职场文书
北京奥运会口号
2014/06/21 职场文书
商务经理岗位职责
2014/07/30 职场文书
2014年财务部工作总结
2014/11/11 职场文书
党员示范岗材料
2014/12/19 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
警用民用对讲机找不同
2022/02/18 无线电
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript