numpy.sum()函数参数与axis用法详解

林舟
林舟
发布时间:2026-10-14 | 6人浏览过
原创

本文详细解析Python中numpy.sum()函数的使用方法,重点讲解axis参数的三种取值情况:None、整数及整数元组。通过二维矩阵示例,说明如何按行或列进行压缩求和,并介绍负数索引及多轴求和的具体效果,帮助开发者准确掌握数组运算逻辑。

numpy.sum()函数参数介绍

numpy库中的sum函数支持接收以下参数:


sum(a, axis=None, dtype=None, out=None, keepdims=np._NoValue)

在参数列表中: a代表参与加法运算的向量、数组或矩阵对象。 axis参数可设置为None、整数或整数元组。 其形参的具体注释说明如下:

a : array_like elements to sum.

a:用于进行加法运算的数组形式的元素

axis : None or int or tuple of ints, optional 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参数的三种取值情况


>>> np.sum([0.5, 1.5])
2.0
>>> np.sum([0.5, 0.7, 0.2, 1.5], dtype=np.int32)
1
>>> np.sum([[0, 1], [0, 5]])
6

当axis指定为整数时,该整数的值不可超过数组或矩阵的维度数,且不同的axis取值会导致不同的计算结果。

首先以2×2的二维矩阵为例进行说明:


>>> np.sum([[0, 1], [0, 5]], axis=0)
array([0, 6])
>>> np.sum([[0, 1], [0, 5]], axis=1)
array([1, 5])

在上述示例中

  • 当axis为0时,操作相当于压缩行,即将每一列的元素相加,最终将矩阵压缩为一行结果。
  • 当axis为1时,操作相当于压缩列,即将每一行的元素相加,将矩阵压缩为一列(此处“一列”仅为便于理解的说法,实际上在控制台输出中,结果仍以一行的形式呈现)。

具体理解过程可参考下图:

  • 当axis取负数值时,对于二维矩阵,只能取-1和-2(取值不可超过矩阵的维度)。
  • 当axis=-1时,其效果等同于axis=1;当axis=-2时,其效果等同于axis=0。

如果axis指定为整数元组(x,y),则是分别求出axis=x和axis=y情况下的和,并将结果进行累加。 继续以上面的2×2矩阵为例

多轴求和与注意事项


>>>np.sum([[0,1],[0,5]],axis=(0,1))
>>>6
>>>np.sum([[0,1],[0,5]],axis=(1,0))
>>>6

另外,需要特别注意:如果要输入两个数组、矩阵或向量进行相加,必须先将这两个数组、矩阵或向量用括号括起来,形成一个元组,这样才能正确执行相加操作。这是因为numpy.sum的运算实现本质是通过矩阵内部的运算机制完成的。

当然,如果只是向量或数组之间做加法运算,可以直接让两个向量或数组相加,但前提是它们必须为numpy的array数组类型,否则对于普通列表而言,相加操作仅表示列表的拼接。

示例代码:


>>>v1 = [1, 2]
>>>v2 = [3, 4]
>>>v1 + v2
[1, 2, 3, 4]

>>>v1 = numpy.array[1, 2]
>>>v2 = numpy.array[3, 4]
>>>v1 + v2
[4, 6]

到此这篇关于numpy.sum()的使用详解的文章就介绍到这了,更多相关numpy.sum()使用内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表