使用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 20 Python
Python读写配置文件的方法
Jun 03 Python
Python面向对象编程基础解析(二)
Oct 26 Python
matplotlib.pyplot绘图显示控制方法
Jan 15 Python
解决PyCharm控制台输出乱码的问题
Jan 16 Python
python DataFrame 取差集实例
Jan 30 Python
python threading和multiprocessing模块基本用法实例分析
Jul 25 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
如何学习Python time模块
Jun 03 Python
python 实现超级玛丽游戏
Nov 25 Python
Pytorch 统计模型参数量的操作 param.numel()
May 13 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
PHP 加密解密内部算法
2010/04/22 PHP
Yii快速入门经典教程
2015/12/28 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
2015/10/23 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
jQuery自适应轮播图插件Swiper用法示例
2016/08/24 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
Python跨文件全局变量的实现方法示例
2017/12/10 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
python中实现控制小数点位数的方法
2019/01/24 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
耐克中国官方商城:Nike中国
2018/10/18 全球购物
几个SQL的面试题
2014/03/08 面试题
公务员培训自我鉴定
2013/09/19 职场文书
行政助理的职责
2013/11/14 职场文书
企业员工培训感言
2014/02/26 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript