# [Numpy-discussion] Producing a Histogram When Bins Are Known

Vincent Schut schut@sarvision...
Fri Nov 27 02:33:26 CST 2009

```Wayne Watson wrote:
> I have a list that already has the frequencies from 0 to 255. However,
> I'd like to make a histogram  that has say 32 bins whose ranges are 0-7,
> 8-15, ... 248-255. Is it possible?
>
Wayne,

you might find the 'numpy example list with doc' webpage quite
informative... http://www.scipy.org/Numpy_Example_List_With_Doc (give it
some time to load, it's pretty large...)
For new users (I was one once...) it usually takes some time to find the
usual suspects in numpy/scipy help and docs... This one page has really
become unvaluable for me.

It gives you the docstrings for numpy functions, often including some
example code.

If you check out the histogram() function, you'll see it takes a 'bins='
argument:

bins : int or sequence of scalars, optional
If `bins` is an int, it defines the number of equal-width
bins in the given range (10, by default). If `bins` is a sequence,
it defines the bin edges, including the rightmost edge, allowing
for non-uniform bin widths.

So, if your bins are known, you can pass it to numpy.histogram, either
as number-of-bins (if equal width), if necessary combined with the
'range=' parameter to specify the range to divide into equal bins, or as
bin edges (e.g. in your case: (0, 8, 16, ... 256) or
numpy.linspace(0,256,33) which will give you this range nicely.

If you don't specify the 'range=' parameter, it will check the min and
max from your input data and use that as lower and upper bounds.

Good luck learning numpy! :)

Vincent.

```