使用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 2.7.x 和 3.x 版本的重要区别小结
Nov 28 Python
python简单程序读取串口信息的方法
Mar 13 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 Python
python打包exe开机自动启动的实例(windows)
Jun 28 Python
python设计tcp数据包协议类的例子
Jul 23 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
使用K.function()调试keras操作
Jun 17 Python
Python pip安装第三方库实现过程解析
Jul 09 Python
Python 实现一个计时器
Jul 28 Python
Python利用机器学习算法实现垃圾邮件的识别
Jun 28 Python
Elasticsearch 数据类型及管理
Apr 19 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/01 无线电
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
js中的闭包学习心得
2018/02/06 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
python 异常处理总结
2016/10/18 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
初中同学聚会感言
2014/02/11 职场文书
七一建党日演讲稿
2014/09/05 职场文书
个人授权委托书范文
2014/09/21 职场文书
工会积极分子个人总结
2015/03/03 职场文书
会计试用期自我评价
2015/03/10 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书
python中pandas对多列进行分组统计的实现
2021/06/18 Python