[英]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
sum
( np.sum
会返回一个数字)。
__builtins__.sum
将遍历给定的数组,并且迭代恰好是按行进行的,因此将添加单个行(我将您的数组称为X
和Y
):
>>> 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])
如果您想按元素对X
和Y
求和,那么...只需对它们求和: result = X + Y
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.