程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何有效地计算numpy中两个矩阵系列的外积?

发布于2019-11-11 14:18     阅读(1413)     评论(0)     点赞(27)     收藏(4)


假设我有A(KxMxN)和B(KxLxN)个矩阵,其中L,M,N小,K是大数。我想计算沿着第一个维度使用最后两个维度的外部乘积,以获得矩阵C(KxMxL)。

我可以通过为“ K”中的每个索引k运行一个for循环并为2D矩阵使用numpy的matmul函数来做到这一点

out = [np.matmul(x,y.T) for x, y in zip(A, B)]
out=np.asarray(out)

我不知道我是否可以在没有for循环/理解的情况下做到这一点,因为K是一个非常大的数字。


解决方案


由于A具有形状(K, M, N)B具有形状(K, L, N),并且您希望找到具有形状的乘积之和(K, M, L),因此可以使用np.einsum

C = np.einsum('kmn,kln->kml', A, B)


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/150185/0a42ac6a3befb383c4c6/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

27 0
收藏该文
已收藏

评论内容:(最多支持255个字符)