In [24]: A=np.arange(3*2*2).reshape(3,2,2)
In [25]: p=np.array([1,2,3])
In [26]: temp=np.array([p[m]*A[m] for m in range(len(p))])
In [27]: sum(temp)
Out[27]:
array([[32, 38],
[44, 50]])
In [28]: np.einsum('i...,i->...',A,p)
Out[28]:
array([[32, 38],
[44, 50]])
ijk,i->jk .
, temp . np.sum(..., axis=0) Python sum().
In [30]: (A*p[:,None,None]).sum(axis=0)
Out[30]:
array([[32, 38],
[44, 50]])