Python中ADD和SUM之间的区别

时间:2018-12-20 11:41:20

标签: python-3.x numpy sum add

给定两个二维数组时,SUM函数结果说明

当我在Spyder IDE中运行代码时,Sum函数和numpy.add函数显示不同的结果。在给定sum函数中两个参数的两个二维数组而不是array和number的情况下,谁能帮助我理解“ SUM”函数的输出结果。谢谢

import numpy as np

x = np.array([[1,2],[3,4]], dtype=np.float64)
y = np.array([[5,6],[7,8]], dtype=np.float64)

print(x)
print(y)
print (x+y)    
print(sum(x,y))
print(np.add(x,y))




        Output
[[1. 2.]
 [3. 4.]]
[[5. 6.]
 [7. 8.]]
[[ 6.  8.]
 [10. 12.]]
[[ 9. 12.]
 [11. 14.]]
[[ 6.  8.]
 [10. 12.]]

1 个答案:

答案 0 :(得分:1)

在Numpy中,+运算符定义为逐元素加法,实际上是equivalentnp.add(...)

sum(iterable, [start])内置函数

  从左到右

求和 start iterable 的项目,并返回总数。开始默认为0。

因此,如果仅给出一个矩阵,它将执行按列求和。如果给出第二个参数,它将(在元素方面)加到总和上。所以一些较小的例子可能是

sum(x)
> array([4., 6.])
# i.e. [(1+3), (2+4)]

sum(x, 1)
> array([5., 7.])
# i.e. [(1+1+3), (1+2+4)]

sum(y)
> array([12., 14.])
# i.e. [(5+7), (6+8)]

sum(x, sum(y))
> array([16., 20.])
# i.e. [((5+7)+1+3), ((6+8)+2+4)]

sum(x, y)
> array([[ 9., 12.],
         [11., 14.]])
# i.e. [[(5+1+3), (6+2+4)],
#       [(7+1+3), (8+2+4)]]

最后一个sum()执行x的列式求和,然后将结果与共享列相加到y的每个元素中。用Numpy编写,等效于

sum(x, y) == x.sum(axis=0) + y