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进行颠倒
示例
随机生成一个二维数组
1
2
|
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:上下翻转,意味着把行看成整体,行的顺序发生颠倒,每一行的元素不发生改变
1
|
print (np.flip(a,axis = 0 )) |
[[8 7 8]
[3 1 7]
[5 8 6]]
axis=1:左右翻转,意味着把列看成整体,列的顺序发生颠倒,每一列的元素不发生改变
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函数实现,例子如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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是图片,那么可视化效果更好。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/Jinyindao243052/article/details/104033429