使用numpy einsum索引输入数组中的子数组

时间:2020-07-26 16:51:45

标签: numpy numpy-einsum

我想知道是否有一种方法可以在numpy einsum中对彼此依赖的索引进行编码,以使它们仅对输入矩阵的一部分进行索引。例如,对于两个数组

[0,1,2,3,4]的索引为i

[a,b,c,d,e]的索引为j

我们可以指示numpy einsum使其产生这样的数组吗?

[b + 2c + 3d + 4e,b + 2c + 3d + 4e,2c + 3d + 4e,3d + 4e,4e],索引为t

其中[t]的每个条目都是由索引为i,j> = t的子向量的点积产生的。

我完全不确定如何在numpy einsum约定中对此进行编码。还建议您提供其他有效解决此类示例的方法。

编辑:我已经考虑过扩大数组的尺寸,使其看起来像这样:

[[0,1,2,3,4],\
 [0,0,1,2,3],\
 [0,0,0,1,2],\
...] 

,依此类推。但是事实证明,对于不感兴趣的数组大小来说,这很快会使问题变得太大。

提前谢谢!

0 个答案:

没有答案