使用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内置数据类型详解
Aug 18 Python
Python网站验证码识别
Jan 25 Python
浅谈Python浅拷贝、深拷贝及引用机制
Dec 15 Python
基于Python对象引用、可变性和垃圾回收详解
Aug 21 Python
python使用mysql的两种使用方式
Mar 07 Python
在Python中实现替换字符串中的子串的示例
Oct 31 Python
Python利用scapy实现ARP欺骗的方法
Jul 23 Python
Python vtk读取并显示dicom文件示例
Jan 13 Python
python如何调用字典的key
May 25 Python
用python给csv里的数据排序的具体代码
Jul 17 Python
python运行脚本文件的三种方法实例
Jun 25 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
javascript some()函数用法详解
2014/11/13 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
jquery中ajax学习笔记一
2011/10/16 Javascript
jquery 模板的应用示例
2013/11/12 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
2016/05/07 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
2017/03/10 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
python之Character string(实例讲解)
2017/09/25 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
医科大学生毕业的自我评价分享
2013/11/12 职场文书
信电学院毕业生自荐书
2014/05/24 职场文书
中考标语大全
2014/06/05 职场文书
2016高考感言
2015/08/01 职场文书
MySQL数据库简介与基本操作
2022/05/30 MySQL