Domanda

Ho un elenco molto lungo in un numpy.array . Voglio generare un istogramma per questo. Tuttavia, Numa istogramma incorporato richiede un numero predefinito di bin. Qual è il modo migliore per generare un istogramma completo con un cestino per ciascun valore?

È stato utile?

Soluzione

Se hai una matrice di numeri interi e il valore massimo non è troppo grande puoi usare numpy.bincount:

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

Modifica: Se disponi di dati float o se i dati sono distribuiti su un intervallo enorme, puoi convertirli in numeri interi procedendo come segue:

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

Altri suggerimenti

Un cestino per ogni valore suona un po 'strano ma non

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

dare un risultato simile?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top