我正在使用带有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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。