加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 使numpy.sum()返回矩阵之和而不是单个数字

发布时间:2020-12-16 23:53:10 所属栏目:Python 来源:网络整理
导读:我正在使用带有numpy的矩阵进行相当复杂的求和. 矩阵的形状是matrix.shape =(500,500),数组的形状是arr.shape =(25,).操作如下: totalsum = np.sum([i * matrix for i in arr]) 这是我不明白的: np.sum()非常慢并返回一个浮点float64.使用Python的总和(.)

我正在使用带有numpy的矩阵进行相当复杂的求和.
矩阵的形状是matrix.shape =(500,500),数组的形状是arr.shape =(25,).操作如下:

totalsum = np.sum([i * matrix for i in arr])

这是我不明白的:

np.sum()非常慢并返回一个浮点float64.使用Python的总和(.)执行相同的操作,即

totalsum2 = sum([i*matrix for i in arr])

保留矩阵的形状.也就是说,得到的形状是totalsum2.shape()=(500,500).咦?

我也认为np.sum()花费的时间比sum()更奇怪,特别是当我们使用numpy ndarrays时.

到底发生了什么?
与sum()相比,np.sum()如何将上述值相加?

我想np.sum()来保留矩阵形状.如何设置尺寸,使np.sum()保留矩阵大小并且不返回单个浮点数?

最佳答案
必须调用np.sum,并将可选的axis参数设置为0(在0轴上求和,即由列表推导创建的值)

totalsum = np.sum([i * matrix for i in arr],0)

或者,您可以省略括号,以便np.sum评估生成器.

totalsum = np.sum(i * matrix for i in arr)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读