[Numpy-discussion] Producing a Histogram When Bins Are Known
Fri Nov 27 07:43:51 CST 2009
Thanks. That sounds like it should help a lot. Finding meaningful
examples anywhere hasn't been easy. I thought I'd look through Amazon
for books on Python and scientific uses. I found almost all were written
by authors outside the US, and none seemed to talk about items like
matplotlib. Ezdraw or something like that was often cited. I'm
definitely in a learning stage, and much of what I need is in graphics
to support some data analysis that I'm doing.
Glad to hear it can gather bins into groups. It would be very
disappointing if such a mechanism did not exist. In the distant past,
I've all too often had to write my own histogram programs for this,
FORTRAN, etc. My data is from a 640x480 collection of b/w pixels, which
a processor has binned from 0-255, so I don't want repeat doing a
histogram on 307K data points.
Vincent Schut wrote:
> 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?
> 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='
> 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! :)
> NumPy-Discussion mailing list
Wayne Watson (Watson Adventures, Prop., Nevada City, CA)
(121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
Obz Site: 39° 15' 7" N, 121° 2' 32" W, 2700 feet
350 350 350 350 350 350 350 350 350 350
Make the number famous. See 350.org
The major event has passed, but keep the number alive.
Web Page: <www.speckledwithstars.net/>
More information about the NumPy-Discussion