factorial#
- scipy.special.factorial(n, exact=False, extend='zero')[source]#
- The factorial of a number or array of numbers. - The factorial of non-negative integer n is the product of all positive integers less than or equal to n: - n! = n * (n - 1) * (n - 2) * ... * 1 - Parameters:
- nint or float or complex (or array_like thereof)
- Input values for - n!. Complex values require- extend='complex'. By default, the return value for- n < 0is 0.
- exactbool, optional
- If - exactis set to True, calculate the answer exactly using integer arithmetic, otherwise approximate using the gamma function (faster, but yields floats instead of integers). Default is False.
- extendstring, optional
- One of - 'zero'or- 'complex'; this determines how values- n<0are handled - by default they are 0, but it is possible to opt into the complex extension of the factorial (see below).
 
- Returns:
- nfint or float or complex or ndarray
- Factorial of - n, as integer, float or complex (depending on- exactand- extend). Array inputs are returned as arrays.
 
 - Notes - For arrays with - exact=True, the factorial is computed only once, for the largest input, with each other result computed in the process. The output dtype is increased to- int64or- objectif necessary.- With - exact=Falsethe factorial is approximated using the gamma function (which is also the definition of the complex extension):\[n! = \Gamma(n+1)\]- Examples - >>> import numpy as np >>> from scipy.special import factorial >>> arr = np.array([3, 4, 5]) >>> factorial(arr, exact=False) array([ 6., 24., 120.]) >>> factorial(arr, exact=True) array([ 6, 24, 120]) >>> factorial(5, exact=True) 120