scipy.special.gammaln#
- scipy.special.gammaln(x, out=None) = <ufunc 'gammaln'>#
Logarithmus des Absolutwertes der Gammafunktion.
Definiert als
\[\ln(\lvert\Gamma(x)\rvert)\]wobei \(\Gamma\) die Gammafunktion ist. Weitere Details zur Gammafunktion finden Sie unter [dlmf].
- Parameter:
- xarray_like
Reeller Argument
- outndarray, optional
Optionales Ausgabe-Array für die Funktionsergebnisse
- Rückgabe:
- skalar oder ndarray
Werte des Logarithmus des Absolutwertes von Gamma
Siehe auch
Hinweise
Dies ist dieselbe Funktion wie die Funktion der Python-Standardbibliothek
math.lgamma.Wenn sie in Verbindung mit
gammasgnverwendet wird, ist diese Funktion nützlich, um im Logarithmusraum auf der reellen Achse zu arbeiten, ohne mit komplexen Zahlen umgehen zu müssen, gemäß der Beziehungexp(gammaln(x)) = gammasgn(x) * gamma(x).Für komplexwertige Log-Gamma verwenden Sie stattdessen
loggammaanstelle vongammaln.gammalnhat experimentelle Unterstützung für Python Array API Standard-kompatible Backends zusätzlich zu NumPy. Bitte erwägen Sie, diese Funktionen zu testen, indem Sie die UmgebungsvariableSCIPY_ARRAY_API=1setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente bereitstellen. Die folgenden Kombinationen von Backend und Gerät (oder anderer Fähigkeit) werden unterstützt.Bibliothek
CPU
GPU
NumPy
✅
n/a
CuPy
n/a
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
✅
n/a
Siehe Unterstützung für den Array API Standard für weitere Informationen.
Referenzen
[dlmf]NIST Digital Library of Mathematical Functions https://dlmf.nist.gov/5
Beispiele
>>> import numpy as np >>> import scipy.special as sc
Sie hat zwei positive Nullstellen.
>>> sc.gammaln([1, 2]) array([0., 0.])
Sie hat Pole bei nicht-positiven ganzen Zahlen.
>>> sc.gammaln([0, -1, -2, -3, -4]) array([inf, inf, inf, inf, inf])
Sie nähert sich asymptotisch
x * log(x)an (Stirling-Formel).>>> x = np.array([1e10, 1e20, 1e40, 1e80]) >>> sc.gammaln(x) array([2.20258509e+11, 4.50517019e+21, 9.11034037e+41, 1.83206807e+82]) >>> x * np.log(x) array([2.30258509e+11, 4.60517019e+21, 9.21034037e+41, 1.84206807e+82])