[SciPy-user] More elegant solution for binning lookup?

Tom Bridgman cygnusx1@mac....
Sun Feb 18 16:22:08 CST 2007

I've browsed the numpy and scipy lists and available docs and haven't  
found an answer to this.

SciPy v0.5.1, numpy v1.0rc3.

I've got an array of samples through a region and a value 'R' where I  
want to find the proper bin in 'radius'.  'R' will generally not  
match any value in 'radius'.

Here's the cleanest solution I found:

 >>> import scipy
 >>> import numpy
 >>> radius = scipy.arange(0.0, 1.5, 1.5/1000)
 >>> r=0.7274
 >>> bin = numpy.nonzero(numpy.where(radius > r, 0, 1))[0][-1]
 >>> bin
 >>> radius[484:486]
array([ 0.726 ,  0.7275])

But even this looks rather ugly and not very intuitive as to what I'm  
doing.  Is there a function built-in to scipy or numpy for this?

W.T. Bridgman, Ph.D.
Physics & Astronomy

More information about the SciPy-user mailing list