Нет встроенной функции, но мы можем использовать outer elementwise-multiplication
, сохраняя их первую ось выровненной, а затем изменять ее форму -
c = (a[:,:,None]*b[:,None,:]).reshape(a.shape[0],-1)
В качестве альтернативы мы можем использовать einsum
-
c = np.einsum('nk,nl->nkl',a,b).reshape(a.shape[0],-1)