是否有沿给定轴应用Kronecker产品的功能?例如,给定形状a
和b
的二维数组a.shape == (n, k)
和b.shape == (n, l)
,计算形状c
的{{1}},结果为:
c.shape == (n, k*l)
答案 0 :(得分:2)
没有内置功能,但我们可以使用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)