区分Python内置函数sum和numpy.sum()

sum(iterable[, start]) & np.sum (a, axis = None)

  • sum(iterable[, start])为python内置运算
  1. iterable – 可迭代对象,如:列表、元组、集合。
  2. start – 指定相加的参数,如果没有设置这个值,默认为0。
>>>sum([0,1,2]) 3 >>> sum((2, 3, 4), 1)# 元组计算总和后再加 1 10 >>> sum([0,1,2,3,4], 2)# 列表计算总和后再加 2 12

  • np.sum (a, axis = None)
  1. a-Elements to sum.
  2. axis- Axis or axes along which a sum is performed. The default, axis=None, will sum all of the elements of the input array. If axis is negative it counts from the last to the first axis.
    If axis is a tuple of ints, a sum is performed on all of the axes specified in the tuple instead of a single axis or all the axes as before.
    axis的取值有三种情况:1.None,2.整数, 3.整数元组。
    (在默认/缺省的情况下,axis取None)
    如果axis取None,即将数组/矩阵中的元素全部加起来,得到一个和。
    如果axis为整数,axis的取值不可大于数组/矩阵的维度。
    对于二维数组:
    axis = 0: 将每一列的元素相加,即变为一行(俗称压缩行)
    axis = 1: 将每一行的元素相加,即变为一列(俗称压缩列)(这里的一列是为了方便理解说的,实际上,在控制台的输出中,仍然是以一行的形式输出的)
>>> np.sum([0.5, 1.5]) 2.0 >>> np.sum([[0, 1], [0, 5]]) 6 >>> np.sum([[0, 1], [0, 5]], axis=0) array([0, 6]) >>> np.sum([[0, 1], [0, 5]], axis=1) array([1, 5])

对比
>>>print(sum(range(5), -1)) 9 >>>print(np.sum(range(5), -1)) 10

前者-1表示一个数字,后者-1为参数
【区分Python内置函数sum和numpy.sum()】参考:来源

    推荐阅读