pmean#
- scipy.stats.pmean(a, p, *, axis=0, dtype=None, weights=None, nan_policy='propagate', keepdims=False)[Quelle]#
Berechnet den gewichteten Potenzmittelwert entlang der angegebenen Achse.
Der gewichtete Potenzmittelwert des Arrays \(a_i\), der den Gewichten \(w_i\) zugeordnet ist, ist
\[\left( \frac{ \sum_{i=1}^n w_i a_i^p }{ \sum_{i=1}^n w_i } \right)^{ 1 / p } \, ,\]und bei gleichen Gewichten ergibt sich
\[\left( \frac{ 1 }{ n } \sum_{i=1}^n a_i^p \right)^{ 1 / p } \, .\]Wenn
p=0, gibt dies den geometrischen Mittelwert zurück.Dieser Mittelwert wird auch als verallgemeinerter Mittelwert oder Hölder-Mittelwert bezeichnet und darf nicht mit dem Kolmogorov-verallgemeinerten Mittelwert, auch bekannt als quasi-arithmetischer Mittelwert oder verallgemeinerter f-Mittelwert, verwechselt werden [3].
- Parameter:
- aarray_like
Eingabearray, Masked Array oder Objekt, das in ein Array konvertiert werden kann.
- pint oder float
Exponent.
- 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 des zurückgegebenen Arrays und des Akkumulators, in dem die Elemente summiert werden. Wenn dtype nicht angegeben ist, ist dies standardmäßig der dtype von a, es sei denn, a hat einen ganzzahligen dtype mit einer Genauigkeit, die geringer ist als die des Standard-Plattform-Integers. In diesem Fall wird das Standard-Plattform-Integer verwendet.
- weightsarray_like, optional
Das Gewichtsarray kann entweder 1-dimensional sein (in diesem Fall muss seine Länge der Größe von a entlang der gegebenen axis entsprechen) oder die gleiche Form wie a haben. 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:
- pmeanndarray, siehe dtype Parameter oben.
Ausgabearray, das die Potenzmittelwert-Werte enthält.
Siehe auch
numpy.averageGewichtetes Mittel
gmeanGeometrisches Mittel
hmeanHarmonischer Mittelwert
Hinweise
Der Potenzmittelwert wird über eine einzelne Dimension des Eingabearrays berechnet, standardmäßig
axis=0, oder über alle Werte im Array, wennaxis=None. Für ganzzahlige Eingaben werden float64-Zwischen- und Rückgabewerte verwendet.Der Potenzmittelwert ist nur definiert, wenn alle Beobachtungen nicht-negativ sind; andernfalls ist das Ergebnis NaN.
Hinzugefügt in Version 1.9.
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.pmeanunterstützt experimentell 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 übergeben. 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
⚠️ kein JIT
⚠️ kein JIT
Dask
⚠️ berechnet Graph
n/a
Siehe Unterstützung für den Array API Standard für weitere Informationen.
Referenzen
[1]„Generalized Mean“, Wikipedia, https://en.wikipedia.org/wiki/Generalized_mean
[2]Norris, N., „Convexity properties of generalized mean value functions“, The Annals of Mathematical Statistics, Bd. 8, S. 118-120, 1937
[3]Bullen, P.S., Handbook of Means and Their Inequalities, 2003
Beispiele
>>> from scipy.stats import pmean, hmean, gmean >>> pmean([1, 4], 1.3) 2.639372938300652 >>> pmean([1, 2, 3, 4, 5, 6, 7], 1.3) 4.157111214492084 >>> pmean([1, 4, 7], -2, weights=[3, 1, 3]) 1.4969684896631954
Für p=-1 ist der Potenzmittelwert gleich dem harmonischen Mittelwert
>>> pmean([1, 4, 7], -1, weights=[3, 1, 3]) 1.9029126213592233 >>> hmean([1, 4, 7], weights=[3, 1, 3]) 1.9029126213592233
Für p=0 ist der Potenzmittelwert als geometrischer Mittelwert definiert
>>> pmean([1, 4, 7], 0, weights=[3, 1, 3]) 2.80668351922014 >>> gmean([1, 4, 7], weights=[3, 1, 3]) 2.80668351922014