使用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 24 Python
Anaconda多环境多版本python配置操作方法
Sep 12 Python
Python使用numpy实现BP神经网络
Mar 10 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
python替换字符串中的子串图文步骤
Jun 19 Python
一篇文章搞定Python操作文件与目录
Aug 13 Python
在pycharm中显示python画的图方法
Aug 31 Python
分享8点超级有用的Python编程建议(推荐)
Oct 13 Python
pytorch 修改预训练model实例
Jan 18 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
Feb 20 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
Oct 15 Python
bat批处理之字符串操作的实现
Mar 16 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动态规划解决0-1背包问题实例分析
2015/03/23 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
php压缩文件夹最新版
2018/07/18 PHP
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
Bootstrap框架的学习教程详解(二)
2016/10/18 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
对于Python深浅拷贝的理解
2019/07/29 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
教你怎样写好自我评价
2013/10/05 职场文书
会计电算化专业毕业生自荐信
2013/12/20 职场文书
公益活动策划方案
2014/01/09 职场文书
中学教师培训制度
2014/01/31 职场文书
副董事长岗位职责
2014/04/02 职场文书
彩妆大赛策划方案
2014/05/13 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
慰问信格式
2015/02/14 职场文书
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers
springboot读取nacos配置文件
2022/05/20 Java/Android