scipy.stats.

hmean#

scipy.stats.hmean(a, axis=0, dtype=None, *, weights=None, nan_policy='propagate', keepdims=False)[Quelle]#

Berechnet den gewichteten harmonischen Mittelwert entlang der angegebenen Achse.

Der gewichtete harmonische Mittelwert des Arrays \(a_i\), der mit den Gewichten \(w_i\) assoziiert ist, lautet

\[\frac{ \sum_{i=1}^n w_i }{ \sum_{i=1}^n \frac{w_i}{a_i} } \, ,\]

und bei gleichen Gewichten ergibt sich

\[\frac{ n }{ \sum_{i=1}^n \frac{1}{a_i} } \, .\]
Parameter:
aarray_like

Eingabearray, Masked 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 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.

Hinzugefügt in Version 1.9.

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 ein ValueError ausgelö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:
hmeanndarray

Siehe Parameter dtype oben.

Siehe auch

numpy.mean

Arithmetisches Mittel

numpy.average

Gewichtetes Mittel

gmean

Geometrisches Mittel

Hinweise

Das Stichproben-Harmonisches Mittel ist der Kehrwert des Mittels der Kehrwerte der Beobachtungen.

Das Harmonische Mittel wird über eine einzelne Dimension des Eingabearrays berechnet, standardmäßig axis=0, oder über alle Werte im Array, wenn axis=None. Für ganzzahlige Eingaben werden float64-Zwischen- und Rückgabewerte verwendet.

Das Harmonische Mittel ist nur definiert, wenn alle Beobachtungen nicht-negativ sind; andernfalls ist das Ergebnis NaN.

Seit SciPy 1.9 werden np.matrix-Eingaben (für neuen Code nicht empfohlen) vor der Berechnung in np.ndarray konvertiert. In diesem Fall ist die Ausgabe eine Skalar- oder np.ndarray mit geeigneter Form anstelle eines 2D-np.matrix. Ebenso werden, während maskierte Elemente von Masked Arrays ignoriert werden, die Ausgabe eine Skalar- oder np.ndarray anstelle eines Masked Arrays mit mask=False sein.

hmean hat experimentelle Unterstützung für Backends, die mit dem Python Array API Standard kompatibel sind, zusätzlich zu NumPy. Bitte erwägen Sie, diese Funktionen zu testen, indem Sie eine Umgebungsvariable SCIPY_ARRAY_API=1 setzen 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]

„Weighted Harmonic Mean“, Wikipedia, https://en.wikipedia.org/wiki/Harmonic_mean#Weighted_harmonic_mean

[2]

Ferger, F., „The nature and use of the harmonic mean“, Journal of the American Statistical Association, Bd. 26, S. 36-40, 1931

Beispiele

>>> from scipy.stats import hmean
>>> hmean([1, 4])
1.6000000000000001
>>> hmean([1, 2, 3, 4, 5, 6, 7])
2.6997245179063363
>>> hmean([1, 4, 7], weights=[3, 1, 3])
1.9029126213592233