使用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计算方程式根的方法
May 07 Python
Python实现批量修改文件名实例
Jul 08 Python
python2.7 mayavi 安装图文教程(推荐)
Jun 22 Python
Django 添加静态文件的两种实现方法(必看篇)
Jul 14 Python
TensorFlow在MAC环境下的安装及环境搭建
Nov 14 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
Apr 25 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
numpy np.newaxis 的实用分享
Nov 30 Python
python-numpy-指数分布实例详解
Dec 07 Python
python自动下载图片的方法示例
Mar 25 Python
Python脚本破解压缩文件口令实例教程(zipfile)
Jun 14 Python
python线性插值解析
Jul 05 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中文分词系统SCWS安装和使用实例
2014/04/11 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
如何重写Laravel异常处理类详解
2020/12/20 PHP
JavaScript Prototype对象
2009/01/07 Javascript
js 判断 enter 事件
2009/02/12 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
2020/07/21 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
Python创建xml的方法
2015/03/10 Python
python numpy函数中的linspace创建等差数列详解
2017/10/13 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
Django如何实现防止XSS攻击
2020/10/13 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
Vrbo英国:预订度假屋
2020/08/19 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
自我鉴定怎么写
2013/12/05 职场文书
学生个人自我鉴定范文
2014/03/28 职场文书
2014年校长工作总结
2014/12/11 职场文书
网聊搭讪开场白
2015/05/28 职场文书
地道战观后感300字
2015/06/04 职场文书
Window server中安装Redis的超详细教程
2021/11/17 Redis
python 中的jieba分词库
2021/11/23 Python
R9700摩机记
2022/04/05 无线电
关于Redis的主从复制及哨兵问题
2022/06/16 Redis