math — Mathematische Funktionen¶
Dieses Modul bietet Zugriff auf gängige mathematische Funktionen und Konstanten, einschließlich derer, die vom C-Standard definiert werden.
Diese Funktionen können nicht mit komplexen Zahlen verwendet werden; verwenden Sie Funktionen mit demselben Namen aus dem cmath-Modul, wenn Sie Unterstützung für komplexe Zahlen benötigen. Die Unterscheidung zwischen Funktionen, die komplexe Zahlen unterstützen und solchen, die dies nicht tun, wird getroffen, da die meisten Benutzer nicht so viel Mathematik lernen möchten, wie zur zum Verständnis komplexer Zahlen erforderlich ist. Das Erhalten einer Ausnahme anstelle eines komplexen Ergebnisses ermöglicht eine frühere Erkennung der unerwarteten komplexen Zahl als Parameter, sodass der Programmierer bestimmen kann, wie und warum sie überhaupt generiert wurde.
Die folgenden Funktionen werden von diesem Modul bereitgestellt. Sofern nicht ausdrücklich anders angegeben, sind alle Rückgabewerte floats.
Zahlentheoretische Funktionen |
|
Anzahl der Möglichkeiten, k Elemente aus n Elementen ohne Wiederholung und ohne Reihenfolge auszuwählen |
|
n Fakultät |
|
Größter gemeinsamer Teiler der ganzzahligen Argumente |
|
Ganzzahliger Quadratwurzel einer nicht-negativen ganzen Zahl n |
|
Kleinstes gemeinsames Vielfaches der ganzzahligen Argumente |
|
Anzahl der Möglichkeiten, k Elemente aus n Elementen ohne Wiederholung und mit Reihenfolge auszuwählen |
|
Gleitkomma-Arithmetik |
|
Decken Sie x ab, die kleinste ganze Zahl, die größer oder gleich x ist |
|
Absolutwert von x |
|
Boden von x, die größte ganze Zahl, die kleiner oder gleich x ist |
|
Fused multiply-add-Operation: |
|
Rest der Division |
|
Bruchteilige und ganzzahlige Teile von x |
|
Rest von x in Bezug auf y |
|
Ganzzahliger Teil von x |
|
Funktionen zur Manipulation von Gleitkommazahlen |
|
Betrag (absoluter Wert) von x mit dem Vorzeichen von y |
|
Mantisse und Exponent von x |
|
Prüfen Sie, ob die Werte a und b nahe beieinander liegen |
|
Prüfen Sie, ob x weder unendlich noch NaN ist |
|
Prüfen Sie, ob x eine positive oder negative Unendlichkeit ist |
|
Prüfen Sie, ob x ein NaN (keine Zahl) ist |
|
|
|
Gleitkommazahl steps Schritte nach x in Richtung y |
|
Wert des niedrigstwertigen Bits von x |
|
Potenz-, Exponential- und Logarithmusfunktionen |
|
Kubikwurzel von x |
|
e hoch x |
|
2 hoch x |
|
e hoch x, minus 1 |
|
Logarithmus von x zur gegebenen Basis (standardmäßig e) |
|
Natürlicher Logarithmus von 1+x (Basis e) |
|
Basis-2-Logarithmus von x |
|
Basis-10-Logarithmus von x |
|
x hoch y |
|
Quadratwurzel von x |
|
Summen- und Produktfunktionen |
|
Euklidische Entfernung zwischen zwei Punkten p und q, gegeben als iterierbare Koordinaten |
|
Summe der Werte im Eingabe-iterable |
|
Euklidische Norm eines iterierbaren Satzes von Koordinaten |
|
Produkt der Elemente im Eingabe-iterable mit einem Start-Wert |
|
Summe der Produkte aus zwei iterierbaren Elementen p und q |
|
Winkelkonvertierung |
|
Wandelt Winkel x von Radiant in Grad um |
|
Wandelt Winkel x von Grad in Radiant um |
|
Trigonometrische Funktionen |
|
Arcuscosinus von x |
|
Arcussinus von x |
|
Arcustangens von x |
|
|
|
Kosinus von x |
|
Sinus von x |
|
Tangens von x |
|
Hyperbolische Funktionen |
|
Arcushyperbolicus-Kosinus von x |
|
Arcushyperbolicus-Sinus von x |
|
Arcushyperbolicus-Tangens von x |
|
Hyperbolischer Kosinus von x |
|
Hyperbolischer Sinus von x |
|
Hyperbolischer Tangens von x |
|
Spezialfunktionen |
|
Fehlerfunktion bei x |
|
Gammafunktion bei x |
|
Natürlicher Logarithmus des Absolutbetrags der Gammafunktion bei x |
|
Konstanten |
|
π = 3.141592… |
|
e = 2.718281… |
|
τ = 2π = 6.283185… |
|
Positive Unendlichkeit |
|
„Keine Zahl“ (NaN) |
|
Zahlentheoretische Funktionen¶
- math.comb(n, k)¶
Gibt die Anzahl der Möglichkeiten zurück, k Elemente aus n Elementen ohne Wiederholung und ohne Reihenfolge auszuwählen.
Gleich
n! / (k! * (n - k)!)wennk <= nund null wennk > n.Auch Binomialkoeffizient genannt, da er dem Koeffizienten des k-ten Terms in der Polynomexpansion von
(1 + x)ⁿentspricht.Löst
TypeErroraus, wenn eines der Argumente keine Ganzzahl ist. LöstValueErroraus, wenn eines der Argumente negativ ist.Hinzugefügt in Version 3.8.
- math.factorial(n)¶
Gibt die Fakultät der nicht-negativen ganzen Zahl n zurück.
Geändert in Version 3.10: Floats mit ganzzahligen Werten (wie
5.0) werden nicht mehr akzeptiert.
- math.gcd(*integers)¶
Gibt den größten gemeinsamen Teiler der angegebenen ganzzahligen Argumente zurück. Wenn eines der Argumente ungleich Null ist, dann ist der zurückgegebene Wert die größte positive ganze Zahl, die ein Teiler aller Argumente ist. Wenn alle Argumente Null sind, dann ist der zurückgegebene Wert
0.gcd()ohne Argumente gibt0zurück.Hinzugefügt in Version 3.5.
Geändert in Version 3.9: Unterstützung für eine beliebige Anzahl von Argumenten hinzugefügt. Zuvor wurden nur zwei Argumente unterstützt.
- math.isqrt(n)¶
Gibt die ganzzahlige Quadratwurzel der nicht-negativen ganzen Zahl n zurück. Dies ist der Boden der exakten Quadratwurzel von n, oder gleichbedeutend die größte ganze Zahl a, so dass a² ≤ n.
Für einige Anwendungen mag es bequemer sein, die kleinste ganze Zahl a zu haben, so dass n ≤ a², oder anders ausgedrückt, die Decke der exakten Quadratwurzel von n. Für positive n kann dies mit
a = 1 + isqrt(n - 1)berechnet werden.Hinzugefügt in Version 3.8.
- math.lcm(*integers)¶
Gibt das kleinste gemeinsame Vielfache der angegebenen ganzzahligen Argumente zurück. Wenn alle Argumente ungleich Null sind, dann ist der zurückgegebene Wert die kleinste positive ganze Zahl, die ein Vielfaches aller Argumente ist. Wenn eines der Argumente Null ist, dann ist der zurückgegebene Wert
0.lcm()ohne Argumente gibt1zurück.Hinzugefügt in Version 3.9.
- math.perm(n, k=None)¶
Gibt die Anzahl der Möglichkeiten zurück, k Elemente aus n Elementen ohne Wiederholung und mit Reihenfolge auszuwählen.
Gleich
n! / (n - k)!wennk <= nund null wennk > n.Wenn k nicht angegeben oder
Noneist, dann ist k standardmäßig n und die Funktion gibtn!zurück.Löst
TypeErroraus, wenn eines der Argumente keine Ganzzahl ist. LöstValueErroraus, wenn eines der Argumente negativ ist.Hinzugefügt in Version 3.8.
Gleitkomma-Arithmetik¶
- math.ceil(x)¶
Gibt die Decke von x zurück, die kleinste ganze Zahl, die größer oder gleich x ist. Wenn x kein Float ist, wird delegiert an
x.__ceil__, das einenIntegral-Wert zurückgeben sollte.
- math.fabs(x)¶
Gibt den Absolutwert von x zurück.
- math.floor(x)¶
Gibt den Boden von x zurück, die größte ganze Zahl, die kleiner oder gleich x ist. Wenn x kein Float ist, wird delegiert an
x.__floor__, das einenIntegral-Wert zurückgeben sollte.
- math.fma(x, y, z)¶
Fused multiply-add-Operation. Gibt
(x * y) + zzurück, berechnet so, als ob mit unendlicher Präzision und Reichweite, gefolgt von einer einzelnen Rundung auf dasfloat-Format. Diese Operation bietet oft eine bessere Genauigkeit als der direkte Ausdruck(x * y) + z.Diese Funktion folgt der Spezifikation der fusedMultiplyAdd-Operation, die im IEEE 754-Standard beschrieben ist. Der Standard überlässt einen Fall der Implementierungsdefinition, nämlich das Ergebnis von
fma(0, inf, nan)undfma(inf, 0, nan). In diesen Fällen gibtmath.fmaein NaN zurück und löst keine Ausnahme aus.Hinzugefügt in Version 3.13.
- math.fmod(x, y)¶
Gibt den Gleitkomma-Rest von
x / yzurück, wie von der C-Bibliotheksfunktionfmod(x, y)definiert. Beachten Sie, dass der Python-Ausdruckx % ymöglicherweise nicht dasselbe Ergebnis liefert. Die Absicht des C-Standards ist, dassfmod(x, y)exakt (mathematisch; mit unendlicher Präzision) gleichx - n*yfür eine ganze Zahl n ist, sodass das Ergebnis dasselbe Vorzeichen wie x und einen Betrag kleiner alsabs(y)hat. Pythonsx % yliefert ein Ergebnis mit dem Vorzeichen von y und ist möglicherweise nicht exakt für Float-Argumente berechenbar. Zum Beispiel istfmod(-1e-100, 1e100)-1e-100, aber das Ergebnis von Pythons-1e-100 % 1e100ist1e100-1e-100, was als Float nicht exakt dargestellt werden kann und zur überraschenden1e100rundet. Aus diesem Grund wird die Funktionfmod()im Allgemeinen bei der Arbeit mit Floats bevorzugt, während Pythonsx % ybei der Arbeit mit ganzen Zahlen bevorzugt wird.
- math.modf(x)¶
Gibt den Bruchteil- und Ganzzahlteil von x zurück. Beide Ergebnisse tragen das Vorzeichen von x und sind Floats.
Beachten Sie, dass
modf()ein anderes Aufruf-/Rückgabemuster als seine C-Äquivalente hat: es nimmt ein einzelnes Argument und gibt ein Wertepaar zurück, anstatt seinen zweiten Rückgabewert über einen „Ausgabeparameter“ zurückzugeben (so etwas gibt es in Python nicht).
- math.remainder(x, y)¶
Gibt den IEEE 754-Rest von x in Bezug auf y zurück. Für endliche x und endliche ungleiche y ist dies die Differenz
x - n*y, wobeindie nächste ganze Zahl zum exakten Wert des Quotientenx / yist. Wennx / ygenau auf halbem Weg zwischen zwei aufeinanderfolgenden ganzen Zahlen liegt, wird die nächstgelegene gerade ganze Zahl fürnverwendet. Der Restr = remainder(x, y)erfüllt somit immerabs(r) <= 0.5 * abs(y).Spezialfälle folgen IEEE 754: Insbesondere ist
remainder(x, math.inf)x für jedes endliche x, undremainder(x, 0)undremainder(math.inf, x)lösen für jedes nicht-NaN xValueErroraus. Wenn das Ergebnis der Restoperation Null ist, hat diese Null dasselbe Vorzeichen wie x.Auf Plattformen, die IEEE 754 binäre Gleitkommazahlen verwenden, ist das Ergebnis dieser Operation immer exakt darstellbar: Es werden keine Rundungsfehler eingeführt.
Hinzugefügt in Version 3.7.
- math.trunc(x)¶
Gibt x mit entferntem Bruchteil zurück, wobei der ganzzahlige Teil erhalten bleibt. Dies rundet gegen 0:
trunc()ist für positive x äquivalent zufloor()und für negative x äquivalent zuceil(). Wenn x kein Float ist, wird delegiert anx.__trunc__, das einenIntegral-Wert zurückgeben sollte.
Für die Funktionen ceil(), floor() und modf() beachten Sie, dass alle Gleitkommazahlen mit ausreichend großem Betrag exakte ganze Zahlen sind. Python-Floats speichern typischerweise nicht mehr als 53 Bit Präzision (wie der plattformabhängige C double-Typ), so dass für jedes Float x mit abs(x) >= 2**52 zwangsläufig keine Bruchteile mehr vorhanden sind.
Gleitkomma-Manipulationsfunktionen¶
- math.copysign(x, y)¶
Gibt einen Float mit dem Betrag (Absolutwert) von x, aber dem Vorzeichen von y zurück. Auf Plattformen, die mit signierten Nullen arbeiten, gibt
copysign(1.0, -0.0)-1.0 zurück.
- math.frexp(x)¶
Gibt die Mantisse und den Exponenten von x als Paar
(m, e)zurück. m ist ein Float und e ist eine ganze Zahl, so dassx == m * 2**eexakt ist. Wenn x Null ist, wird(0.0, 0)zurückgegeben, ansonsten0.5 <= abs(m) < 1. Dies wird verwendet, um die interne Darstellung eines Floats auf portable Weise zu „zerlegen“.Beachten Sie, dass
frexp()ein anderes Aufruf-/Rückgabemuster als seine C-Äquivalente hat: es nimmt ein einzelnes Argument und gibt ein Wertepaar zurück, anstatt seinen zweiten Rückgabewert über einen „Ausgabeparameter“ zurückzugeben (so etwas gibt es in Python nicht).
- math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)¶
Gibt
Truezurück, wenn die Werte a und b nahe beieinander liegen, und andernfallsFalse.Ob zwei Werte als nahe beieinander betrachtet werden, wird anhand der angegebenen absoluten und relativen Toleranzen bestimmt. Wenn keine Fehler auftreten, ist das Ergebnis:
abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol).rel_tol ist die relative Toleranz – sie ist der maximal zulässige Unterschied zwischen a und b, relativ zum größeren absoluten Wert von a oder b. Um beispielsweise eine Toleranz von 5 % festzulegen, übergeben Sie
rel_tol=0.05. Die Standardtoleranz beträgt1e-09, was sicherstellt, dass die beiden Werte innerhalb von etwa 9 Dezimalstellen übereinstimmen. rel_tol muss nicht-negativ und kleiner als1.0sein.abs_tol ist die absolute Toleranz; sie beträgt standardmäßig
0.0und muss nicht-negativ sein. Beim Vergleichen vonxmit0.0wirdisclose(x, 0)alsabs(x) <= rel_tol * abs(x)berechnet, was für jedes von Null verschiedenexund rel_tol kleiner als1.0Falseist. Fügen Sie daher ein geeignetes positives abs_tol-Argument zum Aufruf hinzu.Die IEEE 754 Spezialwerte
NaN,infund-infwerden gemäß den IEEE-Regeln behandelt. Insbesondere wirdNaNnicht als nahe einem anderen Wert betrachtet, auch nicht alsNaN.infund-infwerden nur als nahe sich selbst betrachtet.Hinzugefügt in Version 3.5.
Siehe auch
PEP 485 – Eine Funktion zum Testen auf annähernde Gleichheit
- math.isfinite(x)¶
Gibt
Truezurück, wenn x weder eine Unendlichkeit noch ein NaN ist, andernfallsFalse. (Beachten Sie, dass0.0als endlich gilt.)Hinzugefügt in Version 3.2.
- math.isinf(x)¶
Gibt
Truezurück, wenn x eine positive oder negative Unendlichkeit ist, andernfallsFalse.
- math.isnan(x)¶
Gibt
Truezurück, wenn x ein NaN (Not a Number) ist, andernfallsFalse.
- math.nextafter(x, y, steps=1)¶
Gibt den Gleitkommawert zurück, der steps Schritte von x in Richtung y entfernt ist.
Wenn x gleich y ist, wird y zurückgegeben, es sei denn, steps ist null.
Beispiele
math.nextafter(x, math.inf)geht nach oben: in Richtung positive Unendlichkeit.math.nextafter(x, -math.inf)geht nach unten: in Richtung negative Unendlichkeit.math.nextafter(x, 0.0)geht in Richtung Null.math.nextafter(x, math.copysign(math.inf, x))geht von Null weg.
Siehe auch
math.ulp().Hinzugefügt in Version 3.9.
Geändert in Version 3.12: Das Argument steps wurde hinzugefügt.
- math.ulp(x)¶
Gibt den Wert des am wenigsten signifikanten Bits des Gleitkommas x zurück.
Wenn x ein NaN (Not a Number) ist, wird x zurückgegeben.
Wenn x negativ ist, wird
ulp(-x)zurückgegeben.Wenn x eine positive Unendlichkeit ist, wird x zurückgegeben.
Wenn x gleich Null ist, wird der kleinste positive denormalisierte darstellbare Gleitkommawert zurückgegeben (kleiner als der kleinste positive normierte Gleitkommawert,
sys.float_info.min).Wenn x gleich dem größten darstellbaren positiven Gleitkommawert ist, wird der Wert des am wenigsten signifikanten Bits von x zurückgegeben, sodass der erste Gleitkommawert, der kleiner als x ist,
x - ulp(x)ist.Andernfalls (x ist eine positive endliche Zahl), wird der Wert des am wenigsten signifikanten Bits von x zurückgegeben, sodass der erste Gleitkommawert, der größer als x ist,
x + ulp(x)ist.
ULP steht für „Unit in the Last Place“ (Einheit an letzter Stelle).
Siehe auch
math.nextafter()undsys.float_info.epsilon.Hinzugefügt in Version 3.9.
Potenz-, Exponential- und Logarithmusfunktionen¶
- math.cbrt(x)¶
Gibt die Kubikwurzel von x zurück.
Hinzugefügt in Version 3.11.
- math.exp(x)¶
Gibt e hoch x zurück, wobei e = 2.718281… die Basis der natürlichen Logarithmen ist. Dies ist in der Regel genauer als
math.e ** xoderpow(math.e, x).
- math.exp2(x)¶
Gibt 2 hoch x zurück.
Hinzugefügt in Version 3.11.
- math.expm1(x)¶
Gibt e hoch x minus 1 zurück. Hier ist e die Basis der natürlichen Logarithmen. Für kleine Gleitkommazahlen x kann die Subtraktion in
exp(x) - 1zu einem signifikanten Genauigkeitsverlust führen; die Funktionexpm1()bietet eine Möglichkeit, diese Größe mit voller Genauigkeit zu berechnen.>>> from math import exp, expm1 >>> exp(1e-5) - 1 # gives result accurate to 11 places 1.0000050000069649e-05 >>> expm1(1e-5) # result accurate to full precision 1.0000050000166668e-05
Hinzugefügt in Version 3.2.
- math.log(x[, base])¶
Mit einem Argument gibt sie den natürlichen Logarithmus von x (zur Basis e) zurück.
Mit zwei Argumenten gibt sie den Logarithmus von x zur angegebenen base zurück, berechnet als
log(x)/log(base).
- math.log1p(x)¶
Gibt den natürlichen Logarithmus von 1+x (Basis e) zurück. Das Ergebnis wird so berechnet, dass es für x nahe Null genau ist.
- math.log2(x)¶
Gibt den Basis-2-Logarithmus von x zurück. Dies ist in der Regel genauer als
log(x, 2).Hinzugefügt in Version 3.3.
Siehe auch
int.bit_length()gibt die Anzahl der Bits zurück, die zur Darstellung einer Ganzzahl in Binärform erforderlich sind, ausgenommen das Vorzeichen und führende Nullen.
- math.log10(x)¶
Gibt den Basis-10-Logarithmus von x zurück. Dies ist in der Regel genauer als
log(x, 10).
- math.pow(x, y)¶
Gibt x hoch y zurück. Ausnahmefälle folgen dem IEEE 754-Standard, soweit möglich. Insbesondere geben
pow(1.0, x)undpow(x, 0.0)immer1.0zurück, auch wenn x eine Null oder ein NaN ist. Wenn sowohl x als auch y endlich sind, x negativ ist und y keine ganze Zahl ist, istpow(x, y)undefiniert und löst einenValueErroraus.Im Gegensatz zum eingebauten Operator
**konvertiertmath.pow()beide Argumente in den Typfloat. Verwenden Sie**oder die eingebaute Funktionpow()zur Berechnung exakter ganzzahliger Potenzen.Geändert in Version 3.11: Die Sonderfälle
pow(0.0, -inf)undpow(-0.0, -inf)wurden geändert, uminfzurückzugeben, anstattValueErrorauszulösen, um die Konsistenz mit IEEE 754 zu wahren.
- math.sqrt(x)¶
Gibt die Quadratwurzel von x zurück.
Summen- und Produktfunktionen¶
- math.dist(p, q)¶
Gibt den Euklidischen Abstand zwischen zwei Punkten p und q zurück, die jeweils als Sequenz (oder Iterable) von Koordinaten gegeben sind. Die beiden Punkte müssen die gleiche Dimension haben.
Etwa äquivalent zu
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
Hinzugefügt in Version 3.8.
- math.fsum(iterable)¶
Gibt eine genaue Gleitkommasumme der Werte im Iterable zurück. Vermeidet Genauigkeitsverlust durch Verfolgung mehrerer zwischenzeitlicher Teils summationen.
Die Genauigkeit des Algorithmus hängt von den IEEE-754-Garantien für die Arithmetik und dem typischen Fall ab, in dem der Rundungsmodus Half-even ist. Auf einigen Nicht-Windows-Builds verwendet die zugrunde liegende C-Bibliothek eine Gleitkomma-Addition mit erweiterter Genauigkeit und kann gelegentlich eine Zwischensumme doppelt runden, wodurch sie in ihrem am wenigsten signifikanten Bit abweicht.
Weitere Diskussionen und zwei alternative Ansätze finden Sie in den ASPN Cookbook-Rezepten für genaue Gleitkomma-Summationen.
- math.hypot(*coordinates)¶
Gibt die Euklidische Norm zurück,
sqrt(sum(x**2 for x in coordinates)). Dies ist die Länge des Vektors vom Ursprung zum Punkt, der durch die Koordinaten gegeben ist.Für einen zweidimensionalen Punkt
(x, y)ist dies äquivalent zur Berechnung der Hypotenuse eines rechtwinkligen Dreiecks unter Verwendung des Satzes des Pythagoras:sqrt(x*x + y*y).Geändert in Version 3.8: Unterstützung für n-dimensionale Punkte hinzugefügt. Zuvor wurde nur der zweidimensionale Fall unterstützt.
Geändert in Version 3.10: Der Algorithmus wurde in Bezug auf die Genauigkeit verbessert, sodass der maximale Fehler unter 1 ulp (Unit in the Last Place) liegt. Typischerweise ist das Ergebnis fast immer auf 1/2 ulp genau gerundet.
- math.prod(iterable, *, start=1)¶
Berechnet das Produkt aller Elemente im Eingabe-Iterable. Der Standard-start-Wert für das Produkt ist
1.Wenn das Iterable leer ist, wird der Startwert zurückgegeben. Diese Funktion ist speziell für die Verwendung mit numerischen Werten vorgesehen und kann nicht-numerische Typen ablehnen.
Hinzugefügt in Version 3.8.
- math.sumprod(p, q)¶
Gibt die Summe der Produkte von Werten aus zwei Iterables p und q zurück.
Löst
ValueErroraus, wenn die Eingaben nicht die gleiche Länge haben.Etwa äquivalent zu
sum(map(operator.mul, p, q, strict=True))
Für Gleitkomma- und gemischte Ganzzahl-/Gleitkomma-Eingaben werden die Zwischenprodukte und Summen mit erweiterter Genauigkeit berechnet.
Hinzugefügt in Version 3.12.
Winkelkonvertierung¶
- math.degrees(x)¶
Konvertiert den Winkel x von Radiant in Grad.
- math.radians(x)¶
Konvertiert den Winkel x von Grad in Radiant.
Trigonometrische Funktionen¶
- math.acos(x)¶
Gibt den Arkuskosinus von x in Radiant zurück. Das Ergebnis liegt zwischen
0undpi.
- math.asin(x)¶
Gibt den Arkussinus von x in Radiant zurück. Das Ergebnis liegt zwischen
-pi/2undpi/2.
- math.atan(x)¶
Gibt den Arkustangens von x in Radiant zurück. Das Ergebnis liegt zwischen
-pi/2undpi/2.
- math.atan2(y, x)¶
Gibt
atan(y / x)in Radiant zurück. Das Ergebnis liegt zwischen-piundpi. Der Vektor in der Ebene vom Ursprung zum Punkt(x, y)bildet diesen Winkel mit der positiven X-Achse. Der Sinn vonatan2()ist, dass die Vorzeichen beider Eingaben bekannt sind, sodass der korrekte Quadrant für den Winkel berechnet werden kann. Zum Beispiel sindatan(1)undatan2(1, 1)beidepi/4, aberatan2(-1, -1)ist-3*pi/4.
- math.cos(x)¶
Gibt den Kosinus von x Radiant zurück.
- math.sin(x)¶
Gibt den Sinus von x Radiant zurück.
- math.tan(x)¶
Gibt den Tangens von x Radiant zurück.
Hyperbolische Funktionen¶
Hyperbolische Funktionen sind Analoga trigonometrischer Funktionen, die auf Hyperbeln statt auf Kreisen basieren.
- math.acosh(x)¶
Gibt den inversen hyperbolischen Kosinus von x zurück.
- math.asinh(x)¶
Gibt den inversen hyperbolischen Sinus von x zurück.
- math.atanh(x)¶
Gibt den inversen hyperbolischen Tangens von x zurück.
- math.cosh(x)¶
Gibt den hyperbolischen Kosinus von x zurück.
- math.sinh(x)¶
Gibt den hyperbolischen Sinus von x zurück.
- math.tanh(x)¶
Gibt den hyperbolischen Tangens von x zurück.
Spezialfunktionen¶
- math.erf(x)¶
Gibt die Fehlerfunktion bei x zurück.
Die Funktion
erf()kann verwendet werden, um traditionelle statistische Funktionen wie die kumulative Standardnormalverteilung zu berechnen.def phi(x): 'Cumulative distribution function for the standard normal distribution' return (1.0 + erf(x / sqrt(2.0))) / 2.0
Hinzugefügt in Version 3.2.
- math.erfc(x)¶
Gibt die komplementäre Fehlerfunktion bei x zurück. Die komplementäre Fehlerfunktion ist definiert als
1.0 - erf(x). Sie wird für große Werte von x verwendet, bei denen eine Subtraktion von eins zu einem Genauigkeitsverlust führen würde.Hinzugefügt in Version 3.2.
- math.gamma(x)¶
Gibt die Gammafunktion bei x zurück.
Hinzugefügt in Version 3.2.
- math.lgamma(x)¶
Gibt den natürlichen Logarithmus des Absolutbetrags der Gammafunktion bei x zurück.
Hinzugefügt in Version 3.2.
Konstanten¶
- math.pi¶
Die mathematische Konstante π = 3.141592…, mit verfügbarer Genauigkeit.
- math.e¶
Die mathematische Konstante e = 2.718281…, mit verfügbarer Genauigkeit.
- math.tau¶
Die mathematische Konstante τ = 6.283185…, mit verfügbarer Genauigkeit. Tau ist eine Kreis konstant, die gleich 2π ist, dem Verhältnis des Umfangs eines Kreises zu seinem Radius. Um mehr über Tau zu erfahren, schauen Sie sich Vi Hearts Video Pi is (still) Wrong an und feiern Sie Tau-Tag, indem Sie doppelt so viel Kuchen essen!
Hinzugefügt in Version 3.6.
- math.inf¶
Eine positive Gleitkomma-Unendlichkeit. (Für negative Unendlichkeit verwenden Sie
-math.inf.) Entspricht der Ausgabe vonfloat('inf').Hinzugefügt in Version 3.5.
- math.nan¶
Ein Gleitkommawert "nicht eine Zahl" (NaN). Entspricht der Ausgabe von
float('nan'). Aufgrund der Anforderungen des IEEE 754-Standards werdenmath.nanundfloat('nan')nicht als gleich anderen numerischen Werten, einschließlich sich selbst, betrachtet. Um zu prüfen, ob eine Zahl ein NaN ist, verwenden Sie stattdessen die Funktionisnan(), um nach NaNs zu suchen, anstattisoder==. Beispiel>>> import math >>> math.nan == math.nan False >>> float('nan') == float('nan') False >>> math.isnan(math.nan) True >>> math.isnan(float('nan')) True
Hinzugefügt in Version 3.5.
Geändert in Version 3.11: Es ist jetzt immer verfügbar.
CPython-Implementierungsdetail: Das math-Modul besteht hauptsächlich aus dünnen Wrappern um die plattformspezifischen C-Mathematikbibliotheksfunktionen. Das Verhalten in Ausnahmefällen folgt, wo zutreffend, Anhang F des C99-Standards. Die aktuelle Implementierung löst ValueError für ungültige Operationen wie sqrt(-1.0) oder log(0.0) aus (wo C99 Anhang F die Signalisierung von ungültigen Operationen oder Division durch Null empfiehlt) und OverflowError für Ergebnisse, die überlaufen (zum Beispiel exp(1000.0)). Ein NaN wird von keiner der oben genannten Funktionen zurückgegeben, es sei denn, mindestens ein Eingabeargument war ein NaN; in diesem Fall geben die meisten Funktionen ein NaN zurück, aber (wiederum gemäß C99 Anhang F) gibt es einige Ausnahmen von dieser Regel, zum Beispiel pow(float('nan'), 0.0) oder hypot(float('nan'), float('inf')).
Beachten Sie, dass Python keine Anstrengungen unternimmt, Signaling NaNs von Quiet NaNs zu unterscheiden, und das Verhalten für Signaling NaNs bleibt undefiniert. Typisches Verhalten ist, alle NaNs so zu behandeln, als wären sie quiet.
Siehe auch
- Modul
cmath Versionen vieler dieser Funktionen für komplexe Zahlen.