Skip to content
Related Articles

Related Articles

Find the sum and product of a NumPy array elements
  • Last Updated : 29 Aug, 2020

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 prodcut 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]]

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up
Recommended Articles
Page :