python内置函数sum()的参数是多维数组时

今天发了一个有意思的事,sum()ndarray数组求和时,默认是按axis=0轴聚合的。

比如,import numpy as np 后

a = np.array([1, 2, 3])
sum(a)
结果自然是6

a = np.array([[1,2,3],[4,5,6],[7,8,9]])
此时a为
[[1 2 3]
[4 5 6]
[7,8,9]]

sum(a)结果成了array[12,15,18],沿着axis=0轴聚合了

继续b=a[0,:]
sum(b)为6.
这是因为这时b为[1 2 3]。这个时候,其实我们把b理解为
[1
2
3]
更好,因为这样按axis=0聚合就是1+2+3

为什么呢,我们看如果对c=np.array([[1,2,3]])求和会怎么样

sum(c)=[1 2 3]

注意到[1 2 3] 与 [[1 2 3]]区别了吗,一个sum是6,一个sum是[1 2 3]

所以我们以后把[1 2 3]这种统一理解为

[1
2
3]
比较好。

另外再看一个例子,d=np.array([[1],[2],[3]]),sum(d)结果是array([6]).注意array([6])与前面的6有什么区别。

还有更高维数组的情况,类似。

你可能感兴趣的:(python心得)