numpy.sum(a, axis=None, dtype=None, out=None, keepdims=, initial=, where=)[source]

La suma de array elementos sobre un eje dado.

Parámetros
aarray_like

Elementos para resumir.

axisNone or int or tuple of ints, optional

Eje o ejes a lo largo de los cuales se realiza una suma. El valor predeterminado, eje = Ninguno, sumará todos los elementos de la entrada array. Si el eje es negativo, cuenta desde el último hasta el primer eje.

Nuevo en la versión 1.7.0.

Si axis es una tupla de ints, se realiza una suma en todos los ejes especificados en la tupla en lugar de un solo eje o todos los ejes como antes.

dtypedtype, optional

El tipo de devuelto array y del acumulador en el que se suman los elementos. El tipo de a se utiliza de forma predeterminada a menos que a tiene un dtype entero de menor precisión que el entero predeterminado de la plataforma. En ese caso, si a está firmado, entonces se usa el entero de la plataforma mientras que si a no tiene signo, se utiliza un entero sin signo de la misma precisión que el entero de plataforma.

outndarray, optional

Salida alternativa array en el que colocar el resultado. Debe tener la misma forma que la salida esperada, pero el tipo de valores de salida se emitirá si es necesario.

keepdimsbool, optional

Si se establece en Verdadero, los ejes que se reducen se dejan en el resultado como dimensiones con tamaño uno. Con esta opción, el resultado se transmitirá correctamente contra la entrada. array.

Si se pasa el valor predeterminado, entonces keepdims no pasará a la sum método de subclases de ndarray, sin embargo, cualquier valor no predeterminado será. Si el método de la subclase no se implementa keepdims se plantearán excepciones.

initialscalar, optional

Valor inicial de la suma. Ver reduce para detalles.

Nuevo en la versión 1.15.0.

wherearray_like of bool, optional

Elementos a incluir en la suma. Ver reduce para detalles.

Nuevo en la versión 1.17.0.

Devoluciones
sum_along_axisndarray

Un array con la misma forma que a, con el eje especificado eliminado. Si a es un 0-d array, o si axis es None, se devuelve un escalar. Si una salida array se especifica, una referencia a out es regresado.

Ver también

ndarray.sum

Método equivalente.

add.reduce

Funcionalidad equivalente de add.

cumsum

Suma acumulada de array elementos.

trapz

Integración de array valores utilizando la regla trapezoidal compuesta.

mean,average

Notas

La aritmética es modular cuando se utilizan tipos enteros y no se genera ningún error en el desbordamiento.

La suma de un vacío array es el elemento neutro 0:

>>> np.sum([])0.0

Para números de coma flotante, la precisión numérica de la suma (y np.add.reduce) en general se limita sumando directamente cada número individualmente al resultado, lo que provoca errores de redondeo en cada paso. Sin embargo, a menudo numpy utilizará un enfoque numéricamente mejor (suma parcial por pares) que conduce a una precisión mejorada en muchos casos de uso. Esta precisión mejorada siempre se proporciona cuando no axis es dado. Cuando axis se da, dependerá de qué eje se sume. Técnicamente, para proporcionar la mejor velocidad posible, la precisión mejorada solo se utiliza cuando la suma se realiza a lo largo del eje rápido de la memoria. Tenga en cuenta que la precisión exacta puede variar según otros parámetros. A diferencia de NumPy, Python math.fsum La función utiliza un enfoque más lento pero más preciso para la suma. Especialmente al sumar un gran número de números de coma flotante de menor precisión, como float32, los errores numéricos pueden llegar a ser significativos. En tales casos, puede ser aconsejable utilizar dtype=”float64” para utilizar una mayor precisión para la salida.

Ejemplos de

>>> 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.])

Si el acumulador es demasiado pequeño, se produce un desbordamiento:

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

También puede comenzar la suma con un valor distinto de cero:

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