首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中n个矩阵的求和

python中n个矩阵的求和
EN

Stack Overflow用户
提问于 2014-10-09 18:00:14
回答 1查看 59关注 0票数 0

我有一个矩阵,40*2000,维数1500的向量。我使用numpy.outer计算向量的外积,其矩阵的每一列如下:

代码语言:javascript
复制
 np.outer(vector, matrix) 

它显示内存错误,因此我将矩阵拆分为矩阵:,:10,并分别计算。得到的矩阵M为1500*(40*10)。我需要每个矩阵的和这里,我是前40列,另一个40列,等等……如果我使用循环,它将是缓慢的。

代码语言:javascript
复制
     M[:,:40]+ M[:,40:80] + .....

有人能帮我有效地做这个手术吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-09 18:14:28

只要稍微整形一下,您就可以在轴上进行sum

代码语言:javascript
复制
import numpy

M = numpy.arange(100).reshape(5, 20)

M[:, :4]
#>>> array([[ 0,  1,  2,  3],
#>>>        [20, 21, 22, 23],
#>>>        [40, 41, 42, 43],
#>>>        [60, 61, 62, 63],
#>>>        [80, 81, 82, 83]])

M[:, 4:8]
#>>> array([[ 4,  5,  6,  7],
#>>>        [24, 25, 26, 27],
#>>>        [44, 45, 46, 47],
#>>>        [64, 65, 66, 67],
#>>>        [84, 85, 86, 87]])

...

M[:, 16:20]
#>>> array([[16, 17, 18, 19],
#>>>        [36, 37, 38, 39],
#>>>        [56, 57, 58, 59],
#>>>        [76, 77, 78, 79],
#>>>        [96, 97, 98, 99]])

M.reshape(M.shape[0], -1, 4).sum(axis=1)
#>>> array([[ 40,  45,  50,  55],
#>>>        [140, 145, 150, 155],
#>>>        [240, 245, 250, 255],
#>>>        [340, 345, 350, 355],
#>>>        [440, 445, 450, 455]])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26285038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档