2012-07-24 17 views
5

nel mio script Python ho carri allegorici che voglio bin. In questo momento sto facendo:Numpy: uso bidoni con infinite

min_val = 0.0 
max_val = 1.0 
num_bins = 20 
my_bins = numpy.linspace(min_val, max_val, num_bins) 
hist,my_bins = numpy.histogram(myValues, bins=my_bins) 

Ma ora voglio aggiungere due cassonetti per tenere conto di valori che sono < 0,0 e per coloro che sono> 1.0. Uno scomparto dovrebbe quindi includere tutti i valori in (-inf, 0), l'altro tutto in [1, inf)

C'è un modo semplice per farlo mentre si utilizza ancora la funzione di numpy histogram?

risposta

7

La funzione numpy.histogram() accetta felicemente valori infiniti nell'argomento bins:

numpy.histogram(my_values, bins=numpy.r_[-numpy.inf, my_bins, numpy.inf]) 

In alternativa, è possibile utilizzare una combinazione di numpy.searchsorted() e numpy.bincount(), anche se non vedo molto vantaggio a questo approccio.

3

È possibile specificare numpy.inf come superiore e -numpy.inf come limiti del contenitore inferiore.