Matplotlib: Jak przekonwertować histogram na dyskretną funkcję masy prawdopodobieństwa?

Mam pytanie dotyczące funkcji hist () z matplotlib.

Piszę kod, aby wydrukować histogram danych, których wartość waha się od 0 do 1. Na przykład:

values = [0.21, 0.51, 0.41, 0.21, 0.81, 0.99]

bins = np.arange(0, 1.1, 0.1)
a, b, c = plt.hist(values, bins=bins, normed=0)
plt.show()

Powyższy kod generuje prawidłowy histogram (nie mogłem opublikować obrazu, ponieważ nie mam wystarczającej reputacji). Pod względem częstotliwości wygląda to tak:

[0 0 2 0 1 1 0 0 1 1]

Chciałbym przekonwertować to wyjście na dyskretną funkcję masy prawdopodobieństwa, tj. Dla powyższego przykładu chciałbym uzyskać następujące wartości częstotliwości:

[ 0.  0.  0.333333333  0.  0.166666667  0.166666667  0.  0.  0.166666667  0.166666667 ] # each item in the previous array divided by 6)

Myślałem, że po prostu muszę zmienić parametr funkcji hist () na „normed = 1”. Otrzymuję jednak następujące częstotliwości histogramu:

[ 0.  0.  3.33333333  0.  1.66666667  1.66666667  0.  0.  1.66666667  1.66666667 ]

Nie tego oczekuję i nie wiem, jak uzyskać dyskretną funkcję masy prawdopodobieństwa, której suma powinna wynosić 1,0. Podobne pytanie zadano w poniższym linku (link do pytania), ale nie sądzę, aby pytanie zostało rozwiązane.

Z góry dziękuję za pomoc.

questionAnswers(2)

yourAnswerToTheQuestion