# Find the sum and product of a NumPy array elements

• Last Updated : 14 Dec, 2021

In this article, let’s discuss how to find the sum and product of NumPy arrays.

### Sum of the NumPy array

Sum of NumPy array elements can be achieved in the following ways

Method #1:  Using numpy.sum()

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

Example:

## Python3

 `# importing numpy` `import` `numpy as np`     `def` `main():`   `    ``# initialising array` `    ``print``(``'Initialised array'``)` `    ``gfg ``=` `np.array([[``1``, ``2``, ``3``], [``4``, ``5``, ``6``]])` `    ``print``(gfg)` `    `  `    ``# sum along row` `    ``print``(np.``sum``(gfg, axis``=``1``))` `    `  `    ``# sum along column` `    ``print``(np.``sum``(gfg, axis``=``0``))` `    `  `    ``# sum of entire array` `    ``print``(np.``sum``(gfg))` `    `  `    ``# use of out` `    ``# initialise a array with same dimensions` `    ``# of expected output to use OUT parameter` `    ``b ``=` `np.array([``0``])  ``# np.int32)#.shape = 1` `    ``print``(np.``sum``(gfg, axis``=``1``, out``=``b))` `    `  `    ``# the output is stored in b` `    ``print``(b)` `    `  `    ``# use of keepdim` `    ``print``(``'with axis parameter'``)` `    `  `    ``# output array's dimension is same as specified` `    ``# by the axis` `    ``print``(np.``sum``(gfg, axis``=``0``, keepdims``=``True``))` `    `  `    ``# output consist of 3 columns` `    ``print``(np.``sum``(gfg, axis``=``1``, keepdims``=``True``))` `    `  `    ``# output consist of 2 rows` `    ``print``(``'without axis parameter'``)` `    ``print``(np.``sum``(gfg, keepdims``=``True``))` `    `  `    ``# we added 100 to the actual result` `    ``print``(``'using initial parameter in sum function'``)` `    ``print``(np.``sum``(gfg, initial``=``100``))`   `    ``# False allowed to skip sum operation on column 1 and 2` `    ``# that's why output is 0 for them` `    ``print``(``'using where parameter '``)` `    ``print``(np.``sum``(gfg, axis``=``0``, where``=``[``True``, ``False``, ``False``]))`     `if` `__name__ ``=``=` `"__main__"``:` `    ``main()`

Output:

```Initialised array
[[1 2 3]
[4 5 6]]
[ 6 15]
[5 7 9]
21
[21]
[21]
with axis parameter
[[5 7 9]]
[[ 6]
[15]]
without axis parameter
[[21]]
using initial parameter in sum function
121
using where parameter
[5 0 0]```

Note: using numpy.sum on array elements consisting Not a Number (NaNs) elements gives an error, To avoid this we use numpy.nansum() the parameters are similar to the former except the latter doesn’t support where and initial.

Method #2: Using numpy.cumsum()

Returns the cumulative sum of the elements in the given array.

Syntax: numpy.cumsum(array_name, axis=None, dtype=None, out=None)

Example:

## Python3

 `# importing numpy` `import` `numpy as np`     `def` `main():`   `    ``# initialising array` `    ``print``(``'Initialised array'``)` `    ``gfg ``=` `np.array([[``1``, ``2``, ``3``], [``4``, ``5``, ``6``]])` `    `  `    ``print``(``'original array'``)` `    ``print``(gfg)` `    `  `    ``# cumulative sum of the array` `    ``print``(np.cumsum(gfg))` `    `  `    ``# cumulative sum of the array along` `    ``# axis 1` `    ``print``(np.cumsum(gfg, axis``=``1``))` `    `  `    ``# initialising a 2x3 shape array` `    ``b ``=` `np.array([[``None``, ``None``, ``None``], [``None``, ``None``, ``None``]])` `    `  `    ``# finding cumsum and storing it in array` `    ``np.cumsum(gfg, axis``=``1``, out``=``b)` `    `  `    ``# printing resultant array` `    ``print``(b)`     `if` `__name__ ``=``=` `"__main__"``:` `    ``main()`

Output:

```Initialised array
original array
[[1 2 3]
[4 5 6]]
[ 1  3  6 10 15 21]
[[ 1  3  6]
[ 4  9 15]]
[[1 3 6]
[4 9 15]]```

### Product of the NumPy array

Product of NumPy arrays can be achieved in the following ways

Method #1:  Using numpy.prod()

Syntax: numpy.prod(array_name, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)

Example:

## Python3

 `# importing numpy` `import` `numpy as np`   `def` `main():`   `    ``# initialising array` `    ``print``(``'Initialised array'``)` `    ``gfg ``=` `np.array([[``1``, ``2``, ``3``], [``4``, ``5``, ``6``]])` `    ``print``(gfg)` `    `  `    ``# product along row` `    ``print``(np.prod(gfg, axis``=``1``))` `    `  `    ``# product along column` `    ``print``(np.prod(gfg, axis``=``0``))` `    `  `    ``# sum of entire array` `    ``print``(np.prod(gfg))` `    `  `    ``# use of out` `    ``# initialise a array with same dimensions` `    ``# of expected output to use OUT parameter` `    ``b ``=` `np.array([``0``])  ``# np.int32)#.shape = 1` `    ``print``(np.prod(gfg, axis``=``1``, out``=``b))` `    `  `    ``# the output is stored in b` `    ``print``(b)` `    `  `    ``# use of keepdim` `    ``print``(``'with axis parameter'``)` `    `  `    ``# output array's dimension is same as specified` `    ``# by the axis` `    ``print``(np.prod(gfg, axis``=``0``, keepdims``=``True``))` `    `  `    ``# output consist of 3 columns` `    ``print``(np.prod(gfg, axis``=``1``, keepdims``=``True``))` `    `  `    ``# output consist of 2 rows` `    ``print``(``'without axis parameter'``)` `    ``print``(np.prod(gfg, keepdims``=``True``))` `    `  `    ``# we initialise product to a factor of 10` `    ``# instead of 1` `    ``print``(``'using initial parameter in sum function'``)` `    ``print``(np.prod(gfg, initial``=``10``))` `    `  `    ``# False allowed to skip sum operation on column 1 and 2` `    ``# that's why output is 1 which is default initial value` `    ``print``(``'using where parameter '``)` `    ``print``(np.prod(gfg, axis``=``0``, where``=``[``True``, ``False``, ``False``]))` `    `  `if` `__name__ ``=``=` `"__main__"``:` `    ``main()`

Output:

```Initialised array
[[1 2 3]
[4 5 6]]
[  6 120]
[ 4 10 18]
720
[720]
[720]
with axis parameter
[[ 4 10 18]]
[[  6]
[120]]
without axis parameter
[[720]]
using initial parameter in sum function
7200
using where parameter
[4 1 1]```

Method #2:  Using numpy.cumprod()

Returns a cumulative product of the array.

Syntax: numpy.cumsum(array_name, axis=None, dtype=None, out=None)axis = [integer,Optional]

## Python3

 `# importing numpy` `import` `numpy as np`     `def` `main():`   `    ``# initialising array` `    ``print``(``'Initialised array'``)` `    ``gfg ``=` `np.array([[``1``, ``2``, ``3``], [``4``, ``5``, ``6``]])` `    ``print``(``'original array'``)` `    ``print``(gfg)` `    `  `    ``# cumulative product of the array` `    ``print``(np.cumprod(gfg))` `    `  `    ``# cumulative product of the array along` `    ``# axis 1` `    ``print``(np.cumprod(gfg, axis``=``1``))` `    `  `    ``# initialising a 2x3 shape array` `    ``b ``=` `np.array([[``None``, ``None``, ``None``], [``None``, ``None``, ``None``]])` `    `  `    ``# finding cumprod and storing it in array` `    ``np.cumprod(gfg, axis``=``1``, out``=``b)` `    `  `    ``# printing resultant array` `    ``print``(b)`     `if` `__name__ ``=``=` `"__main__"``:` `    ``main()`

Output:

```Initialised array
original array
[[1 2 3]
[4 5 6]]
[  1   2   6  24 120 720]
[[  1   2   6]
[  4  20 120]]
[[1 2 6]
[4 20 120]]```

My Personal Notes arrow_drop_up
Recommended Articles
Page :