Python 如何有效地将变换应用于多通道numpy阵列?

Python 如何有效地将变换应用于多通道numpy阵列?,python,numpy,Python,Numpy,我有三个数据通道。通道表示x、y和z坐标。例如,点的x位置存储在通道1中,y位置存储在通道2中,等等 我想对这些通道中表示的每个点执行变换。也就是说,我想用一个变换矩阵乘以每个u,v位置的x,y和z。当然,我可以手动迭代每个u、v位置并提取位置数据。我觉得这不是最有效的方法 我的问题是,当位置数据存储在每个维度对应的通道中时,转换点集合的最有效方法是什么 raw = numpy.array([ [1, 10, 100], [2, 20, 200], [3, 30, 300], [4, 40, 4

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

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


我的问题是,当位置数据存储在每个维度对应的通道中时,转换点集合的最有效方法是什么

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示例的维度更高?不清楚你所说的u和v是什么意思,但它们有点暗示你的问题可能是高维的。如果是这样的话,您可以研究哪些因素允许将矩阵乘法推广到更高的维度,或者您可以将raw设置为实际原始数据的视图,然后将其向下重塑为M-x-3,最后通过按照您希望的方式重塑转换后的数据来撤销该视图。

模拟一些数据。这是平面记录阵列吗?M-by-N-by-3?