假设我有一个矩阵初始化表达式,例如以下:
A[i,i-2*j+k] = B[ik] * C[i] * D[i+j+k]
为了执行这样的过程,我可以遍历所有 i、j 和 k。问题在于,与 C 中的循环相比,python 中的循环很慢。
是否有某种方法可以使用已编译的包进行上述操作?我猜这应该会大大提高性能。
假设我有一个矩阵初始化表达式,例如以下:
A[i,i-2*j+k] = B[ik] * C[i] * D[i+j+k]
为了执行这样的过程,我可以遍历所有 i、j 和 k。问题在于,与 C 中的循环相比,python 中的循环很慢。
是否有某种方法可以使用已编译的包进行上述操作?我猜这应该会大大提高性能。
考虑到您的最后评论,请看一下numpy.einsum;我前段时间用它来做一个复杂的多维矩阵乘法。这需要一点时间来适应,但如果你按照示例进行操作,你应该能够解决它。
这个模块是用 C 实现的,就像 Numpy 的其余部分一样,所以你应该得到不错的性能。