python sum

来源:互联网 发布:mac mini好用吗 编辑:程序博客网 时间:2024/06/05 03:58

sum是python中一个很实用的函数,但是要注意它的使用,我第一次用的时候,就把它这样用了:s = sum(1,2,3)结果就悲剧啦其实sum()的参数是...
sum是python中一个很实用的函数,但是要注意它的使用,我第一次用的时候,就把它这样用了:
s = sum(1,2,3)
结果就悲剧啦
其实sum()的参数是一个list
例如:
sum([1,2,3])
sum(range(1,11))
还有一个比较有意思的用法
a = range(1,11)
b = range(1,10)
c =  sum([item for item in a if item in b]) 
print c
输出:
45

python中的sum函数.sum(axis=1)

看起来挺简单的样子,但是在给sum函数中加入参数。sum(a,axis=0)或者是.sum(axis=1) 就有点不解了


在我实验以后发现 我们平时用的sum应该是默认的axis=0 就是普通的相加 


而当加入axis=1以后就是将一个矩阵的每一行向量相加


例如:

import numpy as np

np.sum([[0,1,2],[2,1,3],axis=1)

结果就是:array([3,6])

 

 下面是自己的实验结果,与上面的说明有些不符:

a = np.array([[0, 2, 1]]) 

print a.sum()
print a.sum(axis=0)
print a.sum(axis=1)

结果分别是:3, [0 1 2], [3]

 

b = np.array([0, 2, 1])

print b.sum()
print b.sum(axis=0)
print b.sum(axis=1)

结果分别是:3, 3, 运行错误:'axis' entry is out of bounds

 可知:对一维数组,只有第0轴,没有第1轴

c = np.array([[0, 2, 1], [3, 5, 6], [0, 1, 1]])

print c.sum()
print c.sum(axis=0)
print c.sum(axis=1)

结果分别是:19, [3 8 8], [ 3 14  2]

 

axis=0, 表示列。

axis=1, 表示行。

 

 

0 0