如何有效地将变换应用于多通道数组?

2024-06-16 09:57:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三个数据通道。通道表示x、y和z坐标。例如,点的x位置存储在通道1中,y位置存储在通道2中,等等

我想对这些通道中表示的每个点执行变换。也就是说,我想用变换矩阵乘以每个u,v位置的x,y和z。当然,我可以手动遍历每个u,v位置并提取位置数据。我觉得这不是最有效的方法。你知道吗

我的问题是,转换点集合(位置数据存储在对应于每个维度的通道中)的最有效方法是什么?你知道吗


Tags: 数据方法矩阵手动数据通道
1条回答
网友
1楼 · 发布于 2024-06-16 09:57:34

你所描述的只是矩阵乘法:

raw = numpy.array([ [1, 10, 100], [2, 20, 200], [3, 30, 300], [4, 40, 400] ])
transformation = numpy.matrix([ [1, 0, 0], [0, 0, 1], [0, -1, 0] ])
transformed = raw * transformation

也许您的数据比这个M-datapoints-by-3“channels”示例的维度更高?不清楚你所说的uv是什么意思,但它们似乎暗示你的问题可能是更高维度的。如果是这样的话,您可以研究^{}^{},它们允许将矩阵乘法泛化到更高的维度,或者您可以将raw设置为实际原始数据的view,然后reshape降到M-by-3(最后通过将transformed重塑回您想要的方式来撤消)。你知道吗

相关问题 更多 >