Matplotlib: Как преобразовать гистограмму в дискретную функцию вероятности?

У меня есть вопрос, касающийся функции hist () с помощью matplotlib.

Я пишу код для построения гистограммы данных, значение которой варьируется от 0 до 1. Например:

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()

Приведенный выше код генерирует правильную гистограмму (я не смог опубликовать изображение, так как мне не хватает репутации). С точки зрения частот это выглядит так:

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

Я хотел бы преобразовать этот вывод в функцию массовой дискретной вероятности, то есть для приведенного выше примера, я хотел бы получить следующие значения частоты:

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

Я подумал, что мне просто нужно изменить параметр в функции hist () на «normed = 1». Тем не менее, я получаю следующие частоты гистограммы:

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

Это не то, чего я ожидаю, и я не знаю, как получить дискретную функцию вероятности, сумма которой должна быть равна 1,0. Аналогичный вопрос задавался по следующей ссылке (ссылка на вопрос), но я не думаю, что вопрос был решен.

Я благодарен за вашу помощь заранее.

Ответы на вопрос(2)

Ваш ответ на вопрос