使用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 相关文章推荐
python3使用tkinter实现ui界面简单实例
Jan 10 Python
python检测服务器是否正常
Feb 16 Python
python基础教程之基本数据类型和变量声明介绍
Aug 29 Python
Python中列表、字典、元组、集合数据结构整理
Nov 20 Python
Python实现的凯撒密码算法示例
Apr 12 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
Django利用cookie保存用户登录信息的简单实现方法
May 27 Python
python如何判断IP地址合法性
Apr 05 Python
python Django 反向访问器的外键冲突解决
May 20 Python
python三引号如何输入
Jul 06 Python
Python Matplotlib简易教程(小白教程)
Jul 28 Python
用Python实现一个打字速度测试工具来测试你的手速
May 28 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图片上传类带图片显示
2006/11/25 PHP
初级的用php写的采集程序
2007/03/16 PHP
php实现zip文件解压操作
2015/11/03 PHP
php生成curl命令行的方法
2015/12/14 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
JS计算距当前时间的时间差实例
2017/12/29 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
浅析Python中将单词首字母大写的capitalize()方法
2015/05/18 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
如何利用find命令查找文件
2016/11/18 面试题
保安拾金不昧表扬信
2014/01/15 职场文书
酒店保安员岗位职责
2014/01/31 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
机电一体化专业求职信
2014/07/22 职场文书
nginx结合openssl实现https的方法
2021/07/25 Servers
Pandas搭配lambda组合使用详解
2022/01/22 Python