将一个数组的每一行与另一个数组的每个元素乘以numpy

将一个数组的每一行与另一个数组的每个元素乘以numpy,第1张

将一个数组的每一行与另一个数组的每个元素乘以numpy

使用

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]]])


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5667802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存