Numpy: Ajouter un mot-clé de masse à np.hist()

Créé le 25 oct. 2017  ·  3Commentaires  ·  Source: numpy/numpy

Beaucoup de gens veulent calculer la fonction de masse de probabilité en utilisant numpy.hist et sont confus qu'il ne puisse pas le faire.
Il peut cependant calculer la fonction de densité de probabilité et https://github.com/numpy/numpy/issues/1043 a fait un excellent travail en renommant normed en density .
De manière analogue, je propose d'ajouter un mot-clé mass qui (si True ) renvoie la fonction de masse de probabilité.

Je mettrais également en œuvre cette fonction, une fois que j'aurais des commentaires positifs.

Commentaire le plus utile

Compte tenu de la fréquence à laquelle les normalisations sont utilisées dans les histogrammes, il serait logique pour moi d'autoriser la fonctionnalité d'un simple point de vue pratique. Bien sûr, une ligne supplémentaire n'est pas un gros problème une fois, mais cela s'additionne et l'implémentation actuelle peut être frustrante lorsque vous recherchez une norme et réalisez que le paramètre ne fait pas ce dont vous avez besoin. Personnellement, je suis en faveur d'un paramètre norm_type plutôt que d'en ajouter un nouveau.

Il convient de noter cependant que Matplotlib accepte la structure de retour de np.histogram directement comme entrée de plot/bar/etc. Les choses deviennent un peu plus troublantes lorsque vous travaillez avec Pandas DataFrames, car vous devez les découper manuellement, parcourir np.histogram, puis tracer, mais c'est aussi faisable.

En fin de compte, la mise en œuvre d'une normalisation count/sum/pmf dans np.histogram est triviale (un argument contre), mais serait pratique dans les modules qui s'appuient dessus.

Tous les 3 commentaires

Nous devons discuter du fait que la normalisation et le binning sont deux facteurs indépendants d'un histogramme. PDF et PMF sont des catégories inappropriées, car vous pouvez avoir des variables continues regroupées qui sont normalisées par l'aire sous la courbe (PDF), celles qui ne sont pas du tout normalisées (nombre), celles qui sont normalisées par la somme des valeurs bin (pas vraiment un PMF puisqu'il est en compartiment), ceux qui sont normalisés par la somme des valeurs du compartiment pour les variables non continues (Chevy, Volvo, Ford, etc. PMF), et probablement d'autres. Certains outils utilisent apparemment une entrée de chaîne comme sélection.

Je me suis disputé avec matplotlib à ce sujet. Je ne pense pas que ce soit le travail de numpy de le faire car la normalisation est facile à faire mathématiquement post-hoc. C'est juste le graphique qui est difficile. C'est leur enveloppe qui rend difficile les étapes intermédiaires du processus comme la normalisation. Mais je m'égare.

Compte tenu de la fréquence à laquelle les normalisations sont utilisées dans les histogrammes, il serait logique pour moi d'autoriser la fonctionnalité d'un simple point de vue pratique. Bien sûr, une ligne supplémentaire n'est pas un gros problème une fois, mais cela s'additionne et l'implémentation actuelle peut être frustrante lorsque vous recherchez une norme et réalisez que le paramètre ne fait pas ce dont vous avez besoin. Personnellement, je suis en faveur d'un paramètre norm_type plutôt que d'en ajouter un nouveau.

Il convient de noter cependant que Matplotlib accepte la structure de retour de np.histogram directement comme entrée de plot/bar/etc. Les choses deviennent un peu plus troublantes lorsque vous travaillez avec Pandas DataFrames, car vous devez les découper manuellement, parcourir np.histogram, puis tracer, mais c'est aussi faisable.

En fin de compte, la mise en œuvre d'une normalisation count/sum/pmf dans np.histogram est triviale (un argument contre), mais serait pratique dans les modules qui s'appuient dessus.

Il y a beaucoup de discussions sur matplotlib/matplotlib#10398 sur l'ajout d'un tel mot-clé qui pourrait valoir la peine d'être examiné

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

keithbriggs picture keithbriggs  ·  3Commentaires

qualiaa picture qualiaa  ·  3Commentaires

dcsaba89 picture dcsaba89  ·  3Commentaires

kevinzhai80 picture kevinzhai80  ·  4Commentaires

Kreol64 picture Kreol64  ·  3Commentaires