python – Numpy Dot两个2-d数组的产品,在numpy中获得3-d数组

python – Numpy Dot两个2-d数组的产品,在numpy中获得3-d数组,第1张

概述对不起,标题写得很糟糕.我试图并行化我的代码的一部分,并陷入一个点产品.我正在寻找一种有效的方法来做下面的代码,我确信有一个简单的线性代数解决方案,但我很困惑: puy = np.arange(8).reshape(2,4)puy2 = np.arange(12).reshape(3,4)print puy, '\n'print puy2.Tzz = np.zeros([4,2,3]) 对不起,标题写得很糟糕.我试图并行化我的代码的一部分,并陷入一个点产品.我正在寻找一种有效的方法来做下面的代码,我确信有一个简单的线性代数解决方案,但我很困惑:
puy = np.arange(8).reshape(2,4)puy2 = np.arange(12).reshape(3,4)print puy,'\n'print puy2.Tzz = np.zeros([4,2,3])for i in range(4):    zz[i,:,:] = np.dot(np.array([puy[:,i]]).T,np.array([puy2.T[i,:]]))
解决方法 一种方法是使用 np.einsum,它允许您指定您希望发生在索引上的内容:
>>> np.einsum('ik,jk->kij',puy,puy2)array([[[ 0,0],[ 0,16,32]],[[ 1,5,9],[ 5,25,45]],[[ 4,12,20],[12,36,60]],[[ 9,21,33],[21,49,77]]])>>> np.allclose(np.einsum('ik,puy2),zz)True
总结

以上是内存溢出为你收集整理的python – Numpy Dot两个2-d数组的产品,在numpy中获得3-d数组全部内容,希望文章能够帮你解决python – Numpy Dot两个2-d数组的产品,在numpy中获得3-d数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: http://outofmemory.cn/langs/1207559.html

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

发表评论

登录后才能评论

评论列表(0条)

保存