gmean#
- scipy.stats.mstats.gmean(a, axis=0, dtype=None, weights=None, *, nan_policy='propagate', keepdims=False)[Quelle]#
Berechnet das gewichtete geometrische Mittel entlang der angegebenen Achse.
Der gewichtete geometrische Mittelwert der Array-Elemente \(a_i\), verbunden mit den Gewichten \(w_i\), ist
\[\exp \left( \frac{ \sum_{i=1}^n w_i \ln a_i }{ \sum_{i=1}^n w_i } \right) \, ,\]und bei gleichen Gewichten ergibt sich
\[\sqrt[n]{ \prod_{i=1}^n a_i } \, .\]- Parameter:
- aarray_like
Eingabe-Array oder Objekt, das in ein Array konvertiert werden kann.
- axisint oder None, Standard: 0
Wenn es sich um eine ganze Zahl handelt, ist dies die Achse des Eingabearrays, entlang der die Statistik berechnet wird. Die Statistik jedes Achsen-Slices (z. B. Zeile) der Eingabe erscheint dann in einem entsprechenden Element der Ausgabe. Wenn
None, wird die Eingabe vor der Berechnung der Statistik geglättet.- dtypedtype, optional
Typ, in den die Eingabe-Arrays vor der Berechnung konvertiert werden.
- weightsarray_like, optional
Das Array weights muss broadcast-fähig auf dieselbe Form wie a sein. Standard ist None, was jedem Wert ein Gewicht von 1.0 gibt.
- nan_policy{‘propagate’, ‘omit’, ‘raise’}
Definiert, wie Eingabe-NaNs behandelt werden.
propagate: Wenn ein NaN in der Achsen-Slice (z. B. Zeile) vorhanden ist, entlang der die Statistik berechnet wird, wird der entsprechende Eintrag der Ausgabe NaN sein.omit: NaNs werden bei der Berechnung weggelassen. Wenn im Achsen-Slice, entlang dem die Statistik berechnet wird, nicht genügend Daten verbleiben, wird der entsprechende Eintrag der Ausgabe NaN sein.raise: Wenn ein NaN vorhanden ist, wird einValueErrorausgelöst.
- keepdimsbool, Standard: False
Wenn dies auf True gesetzt ist, bleiben die reduzierten Achsen im Ergebnis als Dimensionen mit der Größe eins erhalten. Mit dieser Option wird das Ergebnis korrekt gegen das Eingabearray gestreut (broadcasted).
- Rückgabe:
- gmeanndarray
Siehe Parameter dtype oben.
Siehe auch
numpy.meanArithmetisches Mittel
numpy.averageGewichtetes Mittel
hmeanHarmonischer Mittelwert
Hinweise
Der geometrische Stichprobenmittelwert ist die Exponentialfunktion des Mittelwerts der natürlichen Logarithmen der Beobachtungen. Negative Beobachtungen führen zu NaNs in der Ausgabe, da der *natürliche* Logarithmus (im Gegensatz zum *komplexen* Logarithmus) nur für nicht-negative reelle Zahlen definiert ist.
Seit SciPy 1.9 werden
np.matrix-Eingaben (für neuen Code nicht empfohlen) vor der Berechnung innp.ndarraykonvertiert. In diesem Fall ist die Ausgabe eine Skalar- odernp.ndarraymit geeigneter Form anstelle eines 2D-np.matrix. Ebenso werden, während maskierte Elemente von Masked Arrays ignoriert werden, die Ausgabe eine Skalar- odernp.ndarrayanstelle eines Masked Arrays mitmask=Falsesein.gmeanunterstützt neben NumPy auch experimentell Python Array API Standard-kompatible Backends. 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 übergeben. Die folgenden Kombinationen aus 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
[1]„Weighted Geometric Mean“, Wikipedia, https://en.wikipedia.org/wiki/Weighted_geometric_mean.
[2]Grossman, J., Grossman, M., Katz, R., „Averages: A New Approach“, Archimedes Foundation, 1983
Beispiele
>>> from scipy.stats import gmean >>> gmean([1, 4]) 2.0 >>> gmean([1, 2, 3, 4, 5, 6, 7]) 3.3800151591412964 >>> gmean([1, 4, 7], weights=[3, 1, 3]) 2.80668351922014