更快的方式来执行numpy数组的逐点插值?
我有一个3D数据立方体,有两个空间维度,第三个是2D图像每个点的多波段光谱。
H[x, y, bands]
给定波长(或带数),我想提取对应于该波长的2D图像。这只是一个像H[:,:,bnd]
这样的数组切片。类似地,给定空间位置(i,j),该位置处的光谱是H[i,j]
。
我还希望在光谱上“平滑”图像,以对抗光谱中的低光噪声。对于bandbnd
,我选择一个大小为ѭ4window的窗口,并在该窗口中为该频谱拟合n次多项式。使用polyfit和polyval,我可以在该点找到适合频带fitted3ѭ的光谱值。
现在,如果我想从拟合值中得到bnd
的整个图像,那么我必须在图像的每个(i,j)
处执行这个窗口拟合。我还想要bnd
的二阶导数图像,即每个点处拟合光谱的二阶导数的值。
在点上运行,我可以对每个x*y
谱进行polyfit-polyval-polyder。虽然这有效,但这是一个逐点操作。是否有一些pytho-numponic方式更快地做到这一点?
没有找到相关结果
已邀请:
1 个回复
魄龟呸筹
即可。因此,如果
包含我刚才描述的矩阵(呃,等等,不,我刚刚描述的矩阵的转置)和
是你的三维数据立方体,你的光谱平滑数据立方体将是
。 这将是重复我的警告的一个好点:我没有检查上面几段中的任何细节,这只是为了说明它是如何工作的,以及为什么你可以做所有的事情单个线性代数运算。