使用
broadcasting-
A[:,None,:]*B[:,:,None]
由于
np.einsum还支持广播,因此您也可以使用它(感谢@ajcr提出了这个简洁的版本)-
np.einsum('ij,ik->ikj',A,B)
样品运行-
In [22]: AOut[22]: array([[1, 1, 1], [2, 2, 2], [3, 3, 3]])In [23]: BOut[23]: array([[10, 20], [30, 40], [50, 60]])In [24]: A[:,None,:]*B[:,:,None]Out[24]: array([[[ 10, 10, 10], [ 20, 20, 20]], [[ 60, 60, 60], [ 80, 80, 80]], [[150, 150, 150], [180, 180, 180]]])In [25]: np.einsum('ijk,ij->ijk',A[:,None,:],B)Out[25]: array([[[ 10, 10, 10], [ 20, 20, 20]], [[ 60, 60, 60], [ 80, 80, 80]], [[150, 150, 150], [180, 180, 180]]])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)