Xoay một mảng 90 độ trong mặt phẳng được chỉ định bởi các trục.
Hướng xoay là từ đầu thứ nhất về phía trục thứ hai.
Tham số marray_likemarray_likeMảng gồm hai hoặc nhiều kích thước.
KintegerintegerSố lần mảng được xoay 90 độ.
Axes [2,] mảng[2,] array_likeMảng được xoay trong mặt phẳng được xác định bởi các trục. Trục phải khác nhau.
Mới trong phiên bản 1.12.0.
ReturnsyndarrayyndarrayMột cái nhìn xoay của m.
Xem thêm
flip
Đảo ngược thứ tự của các phần tử trong một mảng dọc theo trục đã cho.
img.swapaxes[-2,-1][...,::-1]
0Lật một mảng theo chiều ngang.
img.swapaxes[-2,-1][...,::-1]
1Lật một mảng theo chiều dọc.
Ghi chú
img.swapaxes[-2,-1][...,::-1]
2 là mặt trái của img.swapaxes[-2,-1][...,::-1]
3img.swapaxes[-2,-1][...,::-1]
2 tương đương với img.swapaxes[-2,-1][...,::-1]
5Ví dụ
>>> m = np.array[[[1,2],[3,4]], int] >>> m array[[[1, 2], [3, 4]]] >>> np.rot90[m] array[[[2, 4], [1, 3]]] >>> np.rot90[m, 2] array[[[4, 3], [2, 1]]] >>> m = np.arange[8].reshape[[2,2,2]] >>> np.rot90[m, 1, [1,2]] array[[[[1, 3], [0, 2]], [[5, 7], [4, 6]]]]
Một giải pháp mà không sử dụng
img.swapaxes[-2,-1][...,::-1]
6 để xoay theo chiều kim đồng hồ sẽ là trao đổi hai trục cuối cùng và sau đó lật cái cuối cùng -img.swapaxes[-2,-1][...,::-1]
Để quay ngược chiều kim đồng hồ, hãy lật trục cuối cùng thứ hai -
img.swapaxes[-2,-1][...,::-1,:]
Với
img.swapaxes[-2,-1][...,::-1]
6, vòng quay ngược chiều kim đồng hồ sẽ -np.rot90[img,axes=[-2,-1]]
Chạy mẫu -
In [39]: img = np.random.randint[0,255,[7,4,3,5]]
In [40]: out_CW = img.swapaxes[-2,-1][...,::-1] # Clockwise
In [41]: out_CCW = img.swapaxes[-2,-1][...,::-1,:] # Counter-Clockwise
In [42]: img[0,0,:,:]
Out[42]:
array[[[142, 181, 141, 81, 42],
[ 1, 126, 145, 242, 118],
[112, 115, 128, 0, 151]]]
In [43]: out_CW[0,0,:,:]
Out[43]:
array[[[112, 1, 142],
[115, 126, 181],
[128, 145, 141],
[ 0, 242, 81],
[151, 118, 42]]]
In [44]: out_CCW[0,0,:,:]
Out[44]:
array[[[ 42, 118, 151],
[ 81, 242, 0],
[141, 145, 128],
[181, 126, 115],
[142, 1, 112]]]
Kiểm tra thời gian chạy
In [41]: img = np.random.randint[0,255,[800,600]]
# @Manel Fornos's Scipy based rotate func
In [42]: %timeit rotate[img, 90]
10 loops, best of 3: 60.8 ms per loop
In [43]: %timeit np.rot90[img,axes=[-2,-1]]
100000 loops, best of 3: 4.19 µs per loop
In [44]: %timeit img.swapaxes[-2,-1][...,::-1,:]
1000000 loops, best of 3: 480 ns per loop
Do đó, để xoay theo
img.swapaxes[-2,-1][...,::-1]
8 độ hoặc bội số của nó, img.swapaxes[-2,-1][...,::-1]
9 hoặc img.swapaxes[-2,-1][...,::-1,:]
0 có vẻ khá tốt về hiệu suất và cũng quan trọng hơn là không thực hiện bất kỳ phép nội suy nào thay đổi các giá trị nếu không được thực hiện bởi chức năng dựa trên xoay của SCIPY. hàm numpy.rot90 []
Hàm ROT90 [] được sử dụng để xoay một mảng 90 độ trong mặt phẳng được chỉ định bởi các trục. Hướng xoay là từ đầu thứ nhất về phía trục thứ hai.
Rotation direction is from the first towards the second axis.
Syntax:
numpy.rot90[m, k=1, axes=[0, 1]]Phiên bản: 1.15.0
Version: 1.15.0
Parameter:
m | Mảng gồm hai hoặc nhiều kích thước. | Yêu cầu |
k | Số lần mảng được xoay 90 độ. | Yêu cầu |
k | Số lần mảng được xoay 90 độ. | Yêu cầu |
k
Số lần mảng được xoay 90 độ.
trục
>>> import numpy as np
>>> m = np.array[[[1,2], [3,4], [5,6]], int]
>>> m
array[[[1, 2],
[3, 4],
[5, 6]]]
>>> np.rot90[m]
array[[[2, 4, 6],
[1, 3, 5]]]
Mảng được xoay trong mặt phẳng được xác định bởi các trục. Trục phải khác nhau.
Giá trị trở lại:
>>> import numpy as np
>>> m = np.array[[[1,2], [3,4], [5,6]], int]
>>> np.rot90[m, 3]
array[[[5, 3, 1],
[6, 4, 2]]]
Mảng được xoay trong mặt phẳng được xác định bởi các trục. Trục phải khác nhau.
Giá trị trở lại:
y: ndarray - một cái nhìn xoay của m. roll[]
Next: NumPy Binary operation Home