scipy.special.
factorial#
- scipy.special.factorial(n, exact=False, extend='zero')[源代码]#
一个数字或数字数组的阶乘。
非负整数 n 的阶乘是小于或等于 n 的所有正整数的乘积
n! = n * (n - 1) * (n - 2) * ... * 1
- 参数:
- nint 或 float 或 complex (或它们的类数组)
n!
的输入值。复数值需要extend='complex'
。默认情况下,n < 0
的返回值是 0。- exactbool,可选
如果
exact
设置为 True,则使用整数算术精确计算答案,否则使用伽玛函数近似计算(速度更快,但产生浮点数而不是整数)。默认为 False。- extendstring,可选
可以是
'zero'
或'complex'
之一;这决定了如何处理n<0
的值 - 默认情况下它们是 0,但是可以选择阶乘的复数扩展(见下文)。
- 返回:
- nfint 或 float 或 complex 或 ndarray
n
的阶乘,为整数、浮点数或复数(取决于exact
和extend
)。数组输入将作为数组返回。
注释
对于
exact=True
的数组,阶乘仅计算一次,针对最大的输入,并且每个其他结果在此过程中计算。如果需要,输出数据类型将增加到int64
或object
。当
exact=False
时,阶乘使用伽玛函数近似计算(这也是复数扩展的定义)\[n! = \Gamma(n+1)\]示例
>>> 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