嗨 Stack Overflow 社区,
我有一个Rp
形状为 4x4x701 的 3D numpy 数组,其中 701 个 4x4 切片中的每一个都代表不同时间点的某个数量。我正在尝试有效地将 Givens 旋转矩阵Q
及其 Hermitian 转置QH
应用于 701 个切片中的每一个,并且目前正在迭代地执行此操作,如下所示:
for idx in np.arange(Rp.shape[-1]):
Rp[[j,k],:,idx] = np.dot(Q, Rp[[j,k],:,idx])
Rp[:,[j,k],idx] = np.dot(Rp[:,[j,k],idx], QH)
但必须有一种方法可以不迭代地执行此操作(对于 numpy 加速)。我意识到我可以只np.dot
用于第一种情况,但是如果没有一些换位,这将不适用于第二种情况,这似乎会减慢速度。
任何想法将不胜感激!