重复numpy向量矩阵向量乘法

重复numpy向量矩阵向量乘法,numpy,Numpy,我有一组向量(n),另一组向量(s)和一组3x3 2D数组(T) 现在,我当前的代码循环n、s,然后是T: result = np.array(n.shape[0], s.shape[0], T.shape[0]) for i in range(n.shape[0]): for j in range(s.shape[0]): for k in range(T.shape[0]): result[i][j][k] = np.sum(n[i] * T

我有一组向量(n),另一组向量(s)和一组3x3 2D数组(T)

现在,我当前的代码循环n、s,然后是T:

result = np.array(n.shape[0], s.shape[0], T.shape[0])

for i in range(n.shape[0]):
    for j in range(s.shape[0]):
        for k in range(T.shape[0]):
            result[i][j][k] = np.sum(n[i] * T[k] * s[j].T)
我试图使用np.apply_沿_轴,但它需要一个一维数组来操作。理想情况下,我正试图找到一个不需要任何for循环的解决方案

我试着让
np.tensordot()
工作(并在两个操作中完成),但到目前为止没有成功

有没有人有更“裸体”的想法

np.einsum('imn,jnm,kmn->ijk', n, s, T)
np.einsum('imn,jnm,kmn->ijk', n, s, T)