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 requireextend='complex'. By default, the return value forn < 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 valuesn<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 onexactandextend). 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 toint64orobjectif 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