Numpy np.sum() 函数详解

本文介绍了numpy中sum()函数的用法。

函数:

numpy.sum(a, axis=None, dtype=None, out=None, 
			keepdims=<no value>, initial=<no value>, where=<no value>)

功能:求给定轴上数组元素的和。


参数:

  • a : array_like
    求和元素
  • axis : None or int or tuple of ints, optional
    执行求和的轴。默认值axis=None将对输入数组的所有元素求和如果轴为负,则从最后一个轴到第一个轴进行计数
    版本1.7.0中的新功能:如果轴是整数元组,则对元组中指定的所有轴执行求和,而不是像以前一样对单轴或所有轴执行求和。
  • dtype : dtype, optional
    返回数组的类型和元素求和的累加器的类型。默认情况下使用的是a的dtype,除非a的整数dtype的精度低于默认的平台整数(platform integer)。在这种情况下,如果a是有符号的,则使用平台整数;如果a是无符号的,则使用精度与平台整数相同的无符号整数。
  • out : ndarray, optional
    用于放置结果的可选输出数组。它必须具有与预期输出相同的形状,但必要时将强制转换输出值的类型。

返回值:

  • sum_along_axis : ndarray
    与a形状相同,但删除了指定轴的数组。如果a是0-d数组,或者如果axis是None,则返回一个标量。如果指定了输出数组,则返回对out的引用。

注意:

使用整数类型时,算术是模块化的,溢出时不会产生错误。

>>> np.sum([])
0.0

对于浮点数,求和(和np.add.reduce)的数值精度通常受到限制,即直接将每个数单独相加到结果中,导致每个步骤的舍入误差。然而,通常numpy将使用数值上更好的方法(部分成对求和),从而在许多用例中提高精度。这种改进的精度总是在没有给定轴的情况下提供的。给定轴时,它将取决于求和的轴。从技术上讲,为了提供尽可能最佳的速度,只有当求和沿存储器中的快轴进行时,才使用改进的精度。请注意,精确精度可能因其他参数而异。与NumPy相反,Python的math.fsum函数使用了一种更慢但更精确的求和方法。特别是在对大量低精度浮点数(如float32)求和时,数值误差可能会变得很大。在这种情况下,建议使用dtype=“float64”对输出使用更高的精度。

示例:

>>> 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
>>> np.sum([[0, 1], [0, 5]], axis=0)
array([0, 6])
>>> np.sum([[0, 1], [0, 5]], axis=1)
array([1, 5])
>>> np.sum([[0, 1], [np.nan, 5]], where=[False, True], axis=1)
array([1., 5.])

如果累加器太小,则会发生溢出:

>>> np.ones(128, dtype=np.int8).sum(dtype=np.int8)
-128

也可用非零值开始求和:


>>> np.sum([10], initial=5)
15

官方文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html

你可能感兴趣的:(Pandas,&,NumPy)