How to Calculate the Factorial of an Array in Numpy

You will learn how to calculate the factorial of an array in Numpy.

how to calculate the factorial of an array in Numpy

How to Calculate the Factorial in Numpy

In Numpy, it is very easy to calculate the factorial of a single number. Just use the math.factorial() method.

import numpy as np

my_number = 7
print(f"The factorial of {my_number} is {np.math.factorial(my_number)}.")

Output:

The factorial of 7 is 5040.

Problem with Computing the Factorial of Array

Calculating the factorial for a single number is simple. However, this method will not work for the array factorial.

import numpy as np

my_array = np.array([[1,2,3],[4,5,6]])
print(f"The factorial of my array is {np.math.factorial(my_array)}.")

You will get the following error:

Traceback (most recent call last):
  File "C:\Users\pythoneo\PycharmProjects\venv\myfile.py", line 5, in 
    print(f"The factorial of my array is {np.math.factorial(my_array)}.")
TypeError: only integer scalar arrays can be converted to a scalar index

Process finished with exit code 1

You need another way to calculate the factorial of a array.

How to Calculate the Factorial of an Array in Numpy

The scipy.special.factorial() function can be used to calculate the factorial of an array.

import numpy as np
import scipy.special

my_array = np.array([[1,2,3],[4,5,6]])
my_factorial = scipy.special.factorial(my_array)
print(f"The factorial of my array is \n{my_factorial}")

Output:

The factorial of my array is 
[[  1.   2.   6.]
 [ 24. 120. 720.]]

See also  Troubleshooting IndexError in NumPy Advanced Indexing Scenarios