给定两个二维数组时,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.]]
答案 0 :(得分:1)
在Numpy中,+
运算符定义为逐元素加法,实际上是equivalent至np.add(...)
。
从左到右求和 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