scipy.special.gammasgn#
- scipy.special.gammasgn(x, out=None) = <ufunc 'gammasgn'>#
伽马函数的符号。
它定义为
\[\begin{split}\text{gammasgn}(x) = \begin{cases} +1 & \Gamma(x) > 0 \\ -1 & \Gamma(x) < 0 \end{cases}\end{split}\]其中 \(\Gamma\) 是伽马函数;参见
gamma。这个定义是完整的,因为伽马函数永远不为零;参见 [dlmf] 中的讨论。- 参数:
- xarray_like
实数参数
- outndarray, optional
可选的输出数组,用于存储函数值
- 返回:
- 标量或 ndarray
伽马函数的符号
附注
伽马函数可以计算为
gammasgn(x) * np.exp(gammaln(x))。数组 API 标准支持
gammasgn对 Python Array API 标准兼容的后端具有实验性支持,除了 NumPy 之外。请考虑通过设置环境变量SCIPY_ARRAY_API=1并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端和设备(或其他功能)的组合。库
CPU
GPU
NumPy
✅
不适用
CuPy
不适用
✅
PyTorch
✅
⛔
JAX
✅
✅
Dask
✅
不适用
有关更多信息,请参阅 对数组 API 标准的支持。
参考文献
[dlmf]NIST 数学函数数字图书馆 https://dlmf.nist.gov/5.2#E1
示例
>>> import numpy as np >>> import scipy.special as sc
对于
x > 0,它为 1。>>> sc.gammasgn([1, 2, 3, 4]) array([1., 1., 1., 1.])
对于负整数,它在 -1 和 1 之间交替。
>>> sc.gammasgn([-0.5, -1.5, -2.5, -3.5]) array([-1., 1., -1., 1.])
它可以用来计算伽马函数。
>>> x = [1.5, 0.5, -0.5, -1.5] >>> sc.gammasgn(x) * np.exp(sc.gammaln(x)) array([ 0.88622693, 1.77245385, -3.5449077 , 2.3632718 ]) >>> sc.gamma(x) array([ 0.88622693, 1.77245385, -3.5449077 , 2.3632718 ])