[Numpy-discussion] histogram using decending range -- what do the results mean?

Robert Kern robert.kern at gmail.com
Fri Oct 5 18:04:47 EDT 2007


Mark.Miller wrote:
> Check how you're implementing the histogram function with respect to 
> that range statement.  It seems to make a difference, desirable or not.
> 
>  >>> import numpy
>  >>> numpy.__version__
> '1.0.4.dev3982'
>  >>> A = numpy.array([1, 2, 3, 4, 5, 6, 5, 4, 5, 4, 3, 2, 1])
>  >>> (x, y) = numpy.histogram(A, range(0, 7))
>  >>> x
> array([0, 2, 2, 2, 3, 3, 1])
>  >>> y
> [0, 1, 2, 3, 4, 5, 6]
>  >>>
>  >>> (x, y) = numpy.histogram(A, range=(0, 7))
>  >>> x
> array([0, 2, 2, 0, 2, 3, 0, 3, 1, 0])
>  >>> y
> array([ 0. ,  0.7,  1.4,  2.1,  2.8,  3.5,  4.2,  4.9,  5.6,  6.3])

Please check the signature of numpy.histogram(). The two aren't intended to be
the same. The range argument has nothing to do with the builtin range() function.

>  >>>
>  >>>
>  >>> (x, y) = numpy.histogram(A, range(7,0))
>  >>> x
> array([], dtype=int32)
>  >>> y
> []
>  >>>
> 
> Note that in the last case, the histogram function isn't returning 
> anything for a descending range.
> 
> Also notice that you're overwriting a python function with the way 
> you're assigning things....

No, he's not. "range" is a keyword argument to histogram(). He's using it correctly.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco



More information about the NumPy-Discussion mailing list