Moyenne harmonique par Python (en utilisant SciPy)

Moyenne harmonique par Python

Utilisez SciPy de Python pour trouver la moyenne harmonique. Installez d'abord SciPy.

Si toutes les cibles de calcul ne sont pas des valeurs supérieures à 0 (nombres réels positifs), une exception sera levée. Les nombres négatifs réduisent le dénominateur et aboutissent à de grandes moyennes harmonisées. Par exemple, si la moyenne harmonisée de 3, -3,4 est calculée selon la formule, elle sera de 12. De telles valeurs ne peuvent pas être utilisées.

harmonic_mean1.py


from scipy import stats
# 1, 2,Moyenne harmonique de 4 ⇒ 1.71428571429
print stats.hmean([1, 2, 4])
# 1, 0.5, 2.0,Moyenne harmonique de 10 ⇒ 1.11111111111
print stats.hmean([1, 0.5, 2.0, 10])


#Après cela, un exemple d'essai d'une valeur négative

# 3,-3,Moyenne harmonisée de 4 ⇒ Erreur de valeur: Harmonic mean only defined if all elements greater than zero
print stats.hmean([3, -3, 4])

#Lorsque calculé selon la formule de la moyenne harmonisée ⇒ 12 valeurs augmentées!?Non, c'est une valeur non valide.
print(3 / ((1 / 3.0) + (1 / -3.0) + (1 / 4.0)))

Si vous voulez obtenir une valeur comme une moyenne harmonique même si 0 ou une valeur négative apparaît

harmonic_mean2.py


from scipy import stats
HM_OFFSET = 0.0001
def custom_hmean(values_list):
    u"""Wrapper avec exceptions à la fonction de moyenne harmonique."""
    #Si toutes les valeurs calculées sont Aucune, définissez la moyenne harmonisée sur Aucune.
    if values_list[0] is None and\
       values_list == [values_list[0]] * len(values_list):
        return None

    #Si toutes les valeurs calculées sont égales ou inférieures à 0, la moyenne d'harmonie est définie sur 0.
    if max(values_list) <= 0:
        return 0

    #Si la valeur à calculer est None, on considère qu'il n'y a pas de données, et si elle est égale ou inférieure à 0, HM_Défini sur la valeur de OFFSET
    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

Détails de scipy.stats.hmean anglais Reportez-vous à Wikipedia pour la formule de la moyenne d'harmonie ⇒ Harmony average Est l'inverse de la moyenne arithmétique de l'inverse

Recommended Posts

Moyenne harmonique par Python (en utilisant SciPy)
[S3] CRUD avec S3 utilisant Python [Python]
Utilisation de Quaternion avec Python ~ numpy-quaternion ~
[Python] Utilisation d'OpenCV avec Python (basique)
Utiliser OpenCV avec Python @Mac
Envoyer en utilisant Python avec Gmail
Compléter python avec emacs en utilisant company-jedi
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
Utilisation de Rstan de Python avec PypeR
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
[Python] Utilisation d'OpenCV avec Python (détection des bords)
Notes sur l'utilisation de rstrip avec python.
Lors de l'utilisation de MeCab avec python dans virtualenv
Précautions lors de l'utilisation de six avec Python 2.5
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Essayez une formule utilisant Σ avec python
Derrière le flyer: utiliser Docker avec Python
Utilisation de Python et MeCab avec Azure Databricks
Communication de socket en utilisant le serveur de socket avec python maintenant
Essayez d'utiliser Python avec Google Cloud Functions
Vérifiez les cours des actions avec Slackbot en utilisant Python
Travailler avec OpenStack à l'aide du SDK Python
Conseils pour utiliser python + caffe avec TSUBAME
Si scipy est python 2.7.8, l'installation de pip trébuche
J'utilise tox et Python 3.3 avec Travis-CI
LPC avec Scipy
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Commencez à utiliser Python
Jouez avec 2016-Python
Essayez d'utiliser scipy
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
ICA avec Scipy
Bingo avec python
Zundokokiyoshi avec python
CORDIC avec Scipy
Scraping à l'aide de Python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
[Personal memo] julia --Utiliser la bibliothèque Python avec Julia en utilisant PyCall
Déboguer avec VS Code en utilisant Boost Python Numpy
J'ai essayé d'utiliser mecab avec python2.7, ruby2.3, php7
Utilisation d'Intel MKL avec NumPy / SciPy (version de novembre 2019)
Création récente de classement à l'aide de l'API Qiita avec Python
Créer un diagramme de dispersion 3D avec SciPy + matplotlib (Python)
Optimisation de portefeuille avec Python (modèle de distribution moyenne de Markovitz)
Qu'utilisez-vous lorsque vous testez avec Python?
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Jugement des nombres premiers avec Python