使用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实现的jpg格式图片修复代码
Apr 21 Python
jupyter安装小结
Mar 13 Python
基于Django filter中用contains和icontains的区别(详解)
Dec 12 Python
详解python:time模块用法
Mar 25 Python
浅谈Python爬虫基本套路
Mar 25 Python
django自定义模板标签过程解析
Dec 14 Python
python读取raw binary图片并提取统计信息的实例
Jan 09 Python
Spark处理数据排序问题如何避免OOM
May 21 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
May 27 Python
PyQt5多线程防卡死和多窗口用法的实现
Sep 15 Python
Python进行特征提取的示例代码
Oct 15 Python
Keras保存模型并载入模型继续训练的实现
Feb 20 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读取IMAP邮件
2006/10/09 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
2016/07/22 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
Python对象类型及其运算方法(详解)
2017/07/05 Python
django定期执行任务(实例讲解)
2017/11/03 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
python列表list保留顺序去重的实例
2018/12/14 Python
python标记语句块使用方法总结
2019/08/05 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
python3字符串输出常见面试题总结
2020/12/01 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
秋季运动会加油稿200字
2014/01/11 职场文书
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs