Xoay mảng 180 độ python

Để xoay 270 độ, chỉ cần thêm 3 làm tham số cho hàm rot90. Thông số này thực hiện 3 vòng quay 90 độ [ngược chiều kim đồng hồ]

import numpy as np

my_array = np.array[[[11, 12, 13],
                    [21, 22, 23],
                    [31, 32, 33]]]
print[f"This is my array: \n{my_array}"]

rotate_array = np.rot90[my_array, 3]
print[f"Array rotated 270 degrees:  \n{rotate_array}"]

Đây là phép quay 270 độ nhưng cũng có thể nói đây là phép quay trái vì đây là cách xoay một ma trận theo hướng trái

Xem thêm   Làm cách nào để hoán vị trong Numpy?

Xoay 180 độ

Để xoay 180 đặt np. rot90[my_array, 2]. có np. rot90[my_array, 4] sẽ không thay đổi mảng nào cả

Ma trận xoay hai chiều quay các điểm trong mặt phẳng $xy$ ngược chiều kim đồng hồ qua một góc $\theta$ quanh gốc tọa độ là

$$ \mathbf{R} = \left[\begin{array}{rr}\cos\theta & -\sin\theta\\ \sin\theta & \cos\theta \end{array}\right]. $$

Để tạo ma trận xoay dưới dạng mảng NumPy cho $\theta=30^\circ$, cách đơn giản nhất là khởi tạo nó như sau

In [x]: theta = np.radians[30]
In [x]: c, s = np.cos[theta], np.sin[theta]
In [x]: R = np.array[[[c, -s], [s, c]]]
Out[x]: print[R] 
[[ 0.8660254 -0.5      ]
 [ 0.5        0.8660254]]

Kể từ phiên bản NumPy 1. 17 vẫn còn một lớp con ma trận, cung cấp cú pháp giống như Matlab để thao tác với ma trận, nhưng việc sử dụng nó không còn được khuyến khích và [nếu may mắn] nó sẽ bị loại bỏ trong tương lai

Đạo hàm 1

Vì các phép quay là phép biến đổi tuyến tính, hiệu ứng xoay một vectơ từ gốc tọa độ đến một điểm tùy ý, $P = [x, y]$, có thể được thiết lập bằng cách xem xét phép quay của các vectơ cơ sở $\hat{\boldsymbol{e} . Trong hình bên dưới, một phép quay của $\theta$ mất

\begin{align*} \hat{\boldsymbol{e}}_x &\rightarrow \hat{\boldsymbol{e}}_x' = \cos\theta\hat{\boldsymbol{e}}_x + \sin\theta . \end{align*}

Do đó, điểm $P$ của chúng ta được chuyển đổi từ $[x, y] \equiv x\hat{\boldsymbol{e}}_x + y \hat{\boldsymbol{e}}_y$ thành. \begin{align*} P' = x\hat{\boldsymbol{e}}_x' + y \hat{\boldsymbol{e}}_y' = [x\cos\theta - y\sin\theta]\hat . \end{align*} Tức là, \begin{align*} P' = \mathbf{R}P = \left[\begin{array}{rr}\cos\theta & -\sin\theta\\ \sin . \end{align*}

Đạo hàm 2

Xét điểm $P$ trong tọa độ cực. $P = [x, y] = [r\cos\phi, r\sin\phi]$. Phép quay một góc $\theta$ chiếm \begin{align*} P \rightarrow P' &= [r\cos[\phi+\theta], r\sin[\phi+\theta]] \\ &= [r[ . \end{align*}

Cho ma trận vuông, xoay ma trận 180 độ theo chiều kim đồng hồ. Việc chuyển đổi nên được thực hiện tại chỗ trong thời gian bậc hai

Ví dụ,

Đầu vào.
 
1   2   3   4
5   6   7   8
9   10  11  12
13  14  15  16
 
Output:
 
16  15  14  13
12  11  10  9
8   7   6   5>> m = np. mảng[[[1,2],[3,4]], int] >>> m mảng[[[1, 2], [3, 4]]] >>> np. mảng rot90[m][[[2, 4], [1, 3]]] >>> np. mảng rot90[m, 2][[[4, 3], [2, 1]]] >>> m = np. sắp xếp[8]. định hình lại [[2,2,2]] >>> np. mảng rot90[m, 1, [1,2]][[[[1, 3], [0, 2]], [[5, 7], [4, 6]]]]

Chủ Đề