我有一些numpy/scipy问题。我有一个3D数组,它以二进制方式表示一个椭球体[ 0出椭球体]。问题是我想旋转我的形状一定程度。你认为这可能吗?或者有没有一种有效的方法直接写旋转椭球体方程?
mf98qq941#
这只是一个简短的回答。如果你需要更多的信息,或者你不知道如何做到这一点,那么我会编辑这篇文章,并添加一个小例子。旋转数据点矩阵的正确方法是做矩阵乘法。旋转矩阵可能是一个n * n矩阵,你必须将它与每个点相乘。如果你有3d矩阵,你就有i*j*k-points这样的东西来绘图。这意味着你必须做i*j*k次才能找到新的点。也许你应该考虑另一个矩阵的绘图,这只是一个二维矩阵,只存储绘图点,没有零值。有一些算法可以更快地计算低值矩阵的结果,但只要谷歌一下就可以了。你明白我的意思了吗?还是你还有一些问题?抱歉给你这个粗略的概述。最好的问候
i*j*k-points
i*j*k
izkcnapc2#
看一下命令numpy.shape,我曾经用它来转置一个数组,但我不知道它是否适合您的需要。
numpy.shape
7cwmlq893#
旋转非矩形度数是棘手的,因为旋转后的正方形不再适合矩阵。最简单的方式是通过以下方式转置2D阵列/矩阵:
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包:
from scipy import ndimage, datasets img = datasets.ascent() img_45 = ndimage.rotate(img, 45, reshape=False)
3条答案
按热度按时间mf98qq941#
这只是一个简短的回答。如果你需要更多的信息,或者你不知道如何做到这一点,那么我会编辑这篇文章,并添加一个小例子。
旋转数据点矩阵的正确方法是做矩阵乘法。旋转矩阵可能是一个n * n矩阵,你必须将它与每个点相乘。如果你有3d矩阵,你就有
i*j*k-points
这样的东西来绘图。这意味着你必须做i*j*k
次才能找到新的点。也许你应该考虑另一个矩阵的绘图,这只是一个二维矩阵,只存储绘图点,没有零值。有一些算法可以更快地计算低值矩阵的结果,但只要谷歌一下就可以了。
你明白我的意思了吗?还是你还有一些问题?抱歉给你这个粗略的概述。
最好的问候
izkcnapc2#
看一下命令
numpy.shape
,我曾经用它来转置一个数组,但我不知道它是否适合您的需要。7cwmlq893#
旋转非矩形度数是棘手的,因为旋转后的正方形不再适合矩阵。
最简单的方式是通过以下方式转置2D阵列/矩阵:
如果你需要一个显式的数组循环,请检查scipy库中的ndimage包: