繁体   English   中英

在 Python 中对二维数组求和

[英]Sum 2-D arrays in Python

我有两个二维数组,我试图按元素求和

 A = array([[-0.31326169, -0., -3.23995333],
               [-0.26328247, -0., -0.64439666]])                         

 B = array([[-0 , -0.28733533, -0.],
            [-0 , -2.12692801, -0]])

sum(A + B)

array([-0.57654415, -2.41426334, -3.88434999])

为什么会产生一维数组?

你要找的是numpy.add

import numpy as np
arr1 = np.array([[-0.31326169, -0., -3.23995333],[-0.26328247, -0., -0.64439666]])
arr2 = np.array([[-0., -0.28733533, -0.],[-0., -2.12692801, -0.]])
arr3=np.add(arr1,arr2)
print(arr3)

输出

[[-0.31326169 -0.28733533 -3.23995333]
 [-0.26328247 -2.12692801 -0.64439666]]

发生这种情况是因为A + B是一个 2 x 3 的数组,然后使用内置的sum函数np.sum sumnp.sum会返回一个数字)。

__builtins__.sum将遍历给定的数组,并且迭代恰好是按行进行的,因此将添加单个行(我将您的数组称为XY ):

>>> X + Y
array([[-0.31326169, -0.28733533, -3.23995333],
       [-0.26328247, -2.12692801, -0.64439666]])

然后, sum(X + Y)将执行以下操作:

__sum = 0
for row in (X + Y):
    __sum += row

return __sum

因此,将汇总各个行:

>>> X + Y
array([[-0.31326169, -0.28733533, -3.23995333],
       [-0.26328247, -2.12692801, -0.64439666]])
>>> _[0] + _[1]
array([-0.57654416, -2.41426334, -3.88434999])

如果您想按元素对XY求和,那么...只需对它们求和: result = X + Y

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM