我打算在numpy上做简单的事情。 我确信应该有简单的方法。
基本上,有长度不同的n个向量的列表。如果v1 [i]是第一个向量的第I个条目,我想找到n维数组,a,这样
A[i,j,k.]=v1[i] v2[j] v3[k] .
我的问题是:
outer只接受两个向量参数。
einsum需要“abcd ……”这样的参数。 这个好像不需要。
kron需要看起来相当复杂的建模,只需要两个参数。
为了避免引入错误,我想尽量避免更多的复杂性。 所以,我命令很好。
迄今为止我掌握的最好的是:
vs=[v1,v2,v3 .]
shape=map(Len,vs ) ) ) ) ) ) )。
# specifytheorientationofeachvector
newshapes=Diag(Array(shape )-1 ) 1
reshaped=[x.reshape(y ) for x,yinzip ) vs,newshapes
# direct product
a=Reduce(lambdaa,b: a*b,reshaped,1 ) ) ) ) ) ) ) ) ) ) ) ) ) )。