Matplotlib: ¿Cómo convertir un histograma a una función de masa de probabilidad discreta?
Tengo una pregunta con respecto a la función hist () con matplotlib.
Estoy escribiendo un código para trazar un histograma de datos cuyo valor varía de 0 a 1. Por ejemplo:
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()
El código anterior genera un histograma correcto (no pude publicar una imagen porque no tengo suficiente reputación). En términos de frecuencias, se ve así:
[0 0 2 0 1 1 0 0 1 1]
Me gustaría convertir esta salida en una función de masa de probabilidad discreta, es decir, para el ejemplo anterior, me gustaría obtener los siguientes valores de frecuencia:
[ 0. 0. 0.333333333 0. 0.166666667 0.166666667 0. 0. 0.166666667 0.166666667 ] # each item in the previous array divided by 6)
Pensé que simplemente necesitaba cambiar el parámetro en la función hist () a 'normado = 1'. Sin embargo, obtengo las siguientes frecuencias de histograma:
[ 0. 0. 3.33333333 0. 1.66666667 1.66666667 0. 0. 1.66666667 1.66666667 ]
Esto no es lo que espero y no sé cómo obtener la función de masa de probabilidad discreta, cuya suma debería ser 1.0. Una pregunta similar se hizo en el siguiente enlace (enlace a la pregunta), pero no creo que la pregunta se haya resuelto.
Aprecio tu ayuda por adelantado.