如何使用已编译的 python 包进行矩阵初始化

计算科学 Python 矩阵
2021-12-01 11:02:15

假设我有一个矩阵初始化表达式,例如以下:

A[i,i-2*j+k] = B[ik] * C[i] * D[i+j+k]

为了执行这样的过程,我可以遍历所有 i、j 和 k。问题在于,与 C 中的循环相比,python 中的循环很慢。

是否有某种方法可以使用已编译的包进行上述操作?我猜这应该会大大提高性能。

1个回答

考虑到您的最后评论,请看一下numpy.einsum我前段时间用它来做一个复杂的多维矩阵乘法。这需要一点时间来适应,但如果你按照示例进行操作,你应该能够解决它。

这个模块是用 C 实现的,就像 Numpy 的其余部分一样,所以你应该得到不错的性能。