沿给定轴的numpy kron

时间:2018-06-04 08:50:46

标签: python numpy

是否有沿给定轴应用Kronecker产品的功能?例如,给定形状ab的二维数组a.shape == (n, k)b.shape == (n, l),计算形状c的{​​{1}},结果为:

c.shape == (n, k*l)

1 个答案:

答案 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)