在 Numpy 中重塑和索引(状态)产品

计算科学 Python 麻木的
2021-12-20 05:30:06

考虑以下:

我从一个2×2矩阵Wij. 然后我拿这个W矩阵并创建一个新的张量,T,通过执行以下操作:

Tijkl=aWaiWajWakWal
在我的代码中,我在 numpy 中使用(光滑的)“einsum”工具:

tt = np.einsum('ai, aj, ak, al', w, w, w, w)

import numpy as npnp。接下来我执行以下操作:

MXXyy=yTxxyyTxxyy
X=xxX=xx. 现在,当我在 numpy 中进行天真的重塑时

mtensor = np.einsum('ikma, jlan', tt, tt).reshape(4, 4, 2, 2)

这只是展开数组,然后按顺序重新收集。但是,我希望能够将某些索引(状态)组合成一个索引(如外部产品,但用于索引)。也就是说,拿我的两个,2状态索引,并将它们组合成一个4状态索引,即它们状态的所有可能组合。如果有人知道在 numpy 中执行此操作的巧妙方法,我将不胜感激一些文档或答案。提前致谢。

1个回答

事实证明,如果索引按上面的字母顺序输入,那么重塑实际上是状态的正确乘积到单个索引中。对不起,对于这个问题,我真的不知道它已经是这样了。