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.