Вы можете попробовать это:
>>> import numpy as np
>>> a = np.arange(1,9).reshape(2,2,2)
>>> a
array([[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])
>>> b = np.arange(1,5).reshape(2,2)
>>> b
array([[1, 2],
[3, 4]])
>>> (a * b[None,:,:].T).sum(axis = 0)
array([[11, 14],
[37, 44]])
Промежуточные шаги выглядят так:
>>> b[None,:,:]
array([[[1, 2],
[3, 4]]])
>>> b[None,:,:].T
array([[[1],
[3]],
[[2],
[4]]])