Harmonischer Mittelwert von Python (mit SciPy)

Harmonischer Mittelwert von Python

Verwenden Sie Pythons SciPy, um den harmonischen Durchschnitt zu ermitteln. Installieren Sie zuerst SciPy.

Wenn alle Berechnungsziele keine Werte größer als 0 sind (positive reelle Zahlen), wird eine Ausnahme ausgelöst. Negative Zahlen reduzieren den Nenner und führen zu großen harmonisierten Durchschnittswerten. Wenn beispielsweise der harmonisierte Durchschnitt von 3, -3,4 gemäß der Formel berechnet wird, beträgt er 12. Solche Werte können nicht verwendet werden.

harmonic_mean1.py


from scipy import stats
# 1, 2,Harmonischer Durchschnitt von 4 ⇒ 1.71428571429
print stats.hmean([1, 2, 4])
# 1, 0.5, 2.0,Harmonischer Durchschnitt von 10 ⇒ 1.11111111111
print stats.hmean([1, 0.5, 2.0, 10])


#Danach ein Beispiel für den Versuch eines negativen Wertes

# 3,-3,Harmonisierter Durchschnitt von 4 ⇒ Wertfehler: Harmonic mean only defined if all elements greater than zero
print stats.hmean([3, -3, 4])

#Bei Berechnung nach der Formel des harmonisierten Mittelwerts ⇒ 12 Werte erhöht!?Nein, es ist ein ungültiger Wert.
print(3 / ((1 / 3.0) + (1 / -3.0) + (1 / 4.0)))

Wenn Sie einen Wert wie einen harmonischen Durchschnitt erhalten möchten, auch wenn 0 oder ein negativer Wert angezeigt wird

harmonic_mean2.py


from scipy import stats
HM_OFFSET = 0.0001
def custom_hmean(values_list):
    u"""Wrapper mit Ausnahmen zur harmonischen Durchschnittsfunktion."""
    #Wenn alle berechneten Werte Keine sind, setzen Sie den harmonisierten Durchschnitt auf Keine.
    if values_list[0] is None and\
       values_list == [values_list[0]] * len(values_list):
        return None

    #Wenn alle berechneten Werte 0 oder weniger sind, wird der Harmonie-Durchschnitt auf 0 gesetzt.
    if max(values_list) <= 0:
        return 0

    #Wenn der zu berechnende Wert Keine ist, wird davon ausgegangen, dass keine Daten vorhanden sind, und wenn er 0 oder weniger ist, wird HM verwendet_Auf den Wert von OFFSET setzen
    return stats.hmean(
        [v if v > 0 else HM_OFFSET for v in values_list if v is not None])


print custom_hmean([3, 0, 4])                   # 0.000299982501021
print custom_hmean([3, None, 4])                # 3.42857142857
print custom_hmean([0, -1, -2, -3])             # 0
print custom_hmean([0, -1, -2, 1])              # 0.000133328889037
print custom_hmean([0, 0, 1, 0])                # 0.000133328889037
print custom_hmean([None, None, 1, None])       # 1.0
print custom_hmean([None, None, None, None])    # None
print custom_hmean([0, 0, 0, 0])                # 0

Details zu scipy.stats.hmean Englisch Die Formel des Harmonie-Durchschnitts finden Sie in Wikipedia ⇒ Harmonie-Durchschnitt Ist die Umkehrung des arithmetischen Mittelwerts der Umkehrung

Recommended Posts

Harmonischer Mittelwert von Python (mit SciPy)
[S3] CRUD mit S3 unter Verwendung von Python [Python]
Verwenden von Quaternion mit Python ~ numpy-quaternion ~
[Python] Verwenden von OpenCV mit Python (Basic)
Verwenden von OpenCV mit Python @Mac
Senden Sie mit Python mit Google Mail
Vervollständigung von Python mit Emacs mit Company-Jedi
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
Verwenden von Rstan aus Python mit PypeR
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Hinweise zur Verwendung von rstrip mit Python.
Bei Verwendung von MeCab mit virtualenv python
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Versuchen Sie eine Formel mit Σ mit Python
Hinter dem Flyer: Docker mit Python verwenden
Verwenden von Python und MeCab mit Azure Databricks
Socket-Kommunikation über Socket-Server mit Python jetzt
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Überprüfen Sie die Aktienkurse mit Slackbot mit Python
Arbeiten mit OpenStack mit dem Python SDK
Tipps zur Verwendung von Python + Caffe mit TSUBAME
Ich verwende Tox und Python 3.3 mit Travis-CI
LPC mit Scipy
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Starten Sie Python
Spielen Sie mit 2016-Python
Versuchen Sie es mit scipy
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
ICA mit Scipy
Bingo mit Python
Zundokokiyoshi mit Python
CORDIC mit Scipy
Scraping mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
[Persönliches Memo] julia - Verwenden Sie die Python-Bibliothek mit julia unter Verwendung von PyCall
Debuggen mit VS-Code mit Boost Python Numpy
Ich habe versucht, Mecab mit Python2.7, Ruby2.3, PHP7 zu verwenden
Verwenden von Intel MKL mit NumPy / SciPy (Version November 2019)
Letzte Ranglistenerstellung mit der Qiita-API mit Python
Erstellen Sie ein 3D-Streudiagramm mit SciPy + matplotlib (Python)
Portfoliooptimierung mit Python (Markovitz-Durchschnittsverteilungsmodell)
Was verwenden Sie beim Testen mit Python?
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python