How to get data in a histogram bin
digitize
, from core NumPy, will give you the index of the bin to which each value in your histogram belongs:
import numpy as NPA = NP.random.randint(0, 10, 100)bins = NP.array([0., 20., 40., 60., 80., 100.])# d is an index array holding the bin id for each point in Ad = NP.digitize(A, bins)
how about something like:
data = numpy.array([0, 0.5, 1.5, 1.5, 1.5, 2.5, 2.5, 2.5, 3])hist, edges = numpy.histogram(data, bins=3)for l, r in zip(edges[:-1], edges[1:]): print(data[(data > l) & (data < r)])
Out:
[ 0.5][ 1.5 1.5 1.5][ 2.5 2.5 2.5]
with a bit of code to handle the edge cases.