如何用Numpy/Theano表示c[i,j,k]=a[i,j]*b[i,k]?

如何用Numpy/Theano表示c[i,j,k]=a[i,j]*b[i,k]?,numpy,linear-algebra,theano,Numpy,Linear Algebra,Theano,定义 c[i,j,k] = a[i,j] * b[i,k] for any i, j, k 是关于i的元素乘积,是关于j和k的外部乘积。有没有办法在NumPy/Theano中不使用循环来表达这一点?我找到了一种同时适用于NumPy和Theano的解决方案: c = a[:, :, np.newaxis] * b[:, np.newaxis, :] 你在找吗?@AshwiniChaudhary不——我什么都没算@MaxB:通过控制输出标签,您可以告诉einsum不要沿轴求和,例如np。eins

定义

c[i,j,k] = a[i,j] * b[i,k] for any i, j, k

是关于
i
的元素乘积,是关于
j
k
的外部乘积。有没有办法在NumPy/Theano中不使用循环来表达这一点?

我找到了一种同时适用于NumPy和Theano的解决方案:

c = a[:, :, np.newaxis] * b[:, np.newaxis, :]

你在找吗?@AshwiniChaudhary不——我什么都没算@MaxB:通过控制输出标签,您可以告诉
einsum
不要沿轴求和,例如
np。einsum('ij,ik->ijk',a,b)
将在NumPy中工作。遗憾的是,
einsum
在no中不存在。。。是的,就是这个。而且对两者都有效。另一个与numpy不兼容的“theano样式”选项是使用
dimshuffle
c=a.dimshuffle(0,1,x')*b.dimshuffle(0,x',1)