Pregunta

Tengo una lista muy larga en un numpy.array . Quiero generar un histograma para ello. Sin embargo, Numpy integrado en el histograma requiere un número predefinido de contenedores. ¿Cuál es la mejor manera de generar un histograma completo con un contenedor para cada valor?

¿Fue útil?

Solución

Si tiene una matriz de enteros y el valor máximo no es demasiado grande, puede usar numpy.bincount:

hist = dict((key,val) for key, val in enumerate(numpy.bincount(data)) if val)

Editar: Si tiene datos flotantes, o datos distribuidos en un amplio rango, puede convertirlos a enteros haciendo:

bins = numpy.unique(data)
bincounts = numpy.bincount(numpy.digitize(data, bins) - 1)
hist = dict(zip(bins, bincounts))

Otros consejos

Un contenedor para cada valor suena un poco extraño pero no

bins=a.max()-a.min()

¿da un resultado similar?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top