python - 组合 Einsum 表达式

标签 python numpy linear-algebra

我要评价

E = np.einsum('ij,jk,kl->ijkl',A,A,A)
F = np.einsum('ijki->ijk',E)

其中 A 是一个矩阵(大小不超过 1000 x 1000)。计算 E 很慢。我想通过仅计算我存储在 F 中的“对角线”元素来加快速度。是否可以将这两个表达式组合起来?/是否有更好的方法来加速此计算?

最佳答案

我不确定是否有自动方法,但你总是可以自己做数学运算并给 einsum 最终表达式:

F = np.einsum('ij,jk,ki->ijk', A, A, A)

关于python - 组合 Einsum 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36879311/

相关文章:

python - 通过仅复制键从旧字典创建字典

python - 如何将 scipy 与数组集成作为函数的一部分

python - 在 Pandas 和 NumPy 中处理 0 和 -0

python - 在不使用列表理解的情况下更改已过滤的二维数组中的元素,同时保留对原始数组的引用

python - Python 中的列表指针

Python绘图仅使用x的每第n个元素来标记x轴

python - 如何在 Python 中的进程之间传递堆栈跟踪?

math - 如何计算相机的 z 距离以在 3D 空间中以 100% 的原始比例查看图像

matlab - 如何用计算机检查矩阵是否是奇异的

python - 在 python 中查找特征值/向量的最快方法是什么?