簡體   English   中英

如何旋轉 numpy 數組?

[英]How to rotate a numpy array?

我有一些 numpy/scipy 問題。 我有一個 3D 數組,它以二進制方式表示一個橢圓體 [橢圓體中的 0]。 問題是我想將我的形狀旋轉一定程度。 你覺得可能嗎? 或者有沒有一種有效的方法可以直接寫出帶旋轉的橢球方程?

只是一個簡短的答案。 如果您需要更多信息,或者您不知道該怎么做,那么我將編輯此帖子並添加一個小示例。

旋轉數據點矩陣的正確方法是進行矩陣乘法。 您的旋轉矩陣可能是n * n矩陣,您必須將其與每個點相乘。 如果您有3D矩陣,則可以使用i*j*k-points的圖形進行繪圖。 這意味着對於您的情況,您必須執行i*j*k才能找到新的點。 也許您應該考慮另一個繪圖矩陣,它只是一個2D矩陣,只存儲繪圖點而沒有零值。

有一些算法可以更快地計算出低值矩陣的結果,但是谷歌為此。

您了解我還是還有其他問題? 抱歉,此概述。

最好的祝福

看一下命令numpy.shape我曾經用它來轉置數組,但是我不知道它是否適合您的需求。 干杯!

旋轉一個非矩形度數很棘手,因為旋轉后的正方形不再適合矩陣。

最簡單的方法是通過以下方式轉置二維數組/矩陣:

import numpy as np
... x = np.array([[1,2,3],[4,5,6],[7,8,9]])
x
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

x.T      # transpose the array

array([[1, 4, 7],
       [2, 5, 8],
       [3, 6, 9]])

如果您需要顯式數組旋轉,請檢查 scipy 庫中的ndimage package

from scipy import ndimage, datasets
img = datasets.ascent()
img_45 = ndimage.rotate(img, 45, reshape=False)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM