[Numpy-discussion] numpy.arange() error?

Eric Firing efiring at hawaii.edu
Thu Feb 9 02:43:47 EST 2012


On 02/08/2012 09:31 PM, teomat wrote:
>
> Hi,
>
> Am I wrong or the numpy.arange() function is not correct 100%?
>
> Try to do this:
>
> In [7]: len(np.arange(3.1, 4.9, 0.1))
> Out[7]: 18
>
> In [8]: len(np.arange(8.1, 9.9, 0.1))
> Out[8]: 19
>
> I would expect the same result for each command.

Not after more experience with the wonders of floating point! 
Nice-looking decimal numbers often have long, drawn-out, inexact 
floating point (base 2) representations.  That leads to exactly this 
sort of problem.

numpy.linspace is provided to help get around some of these surprises; 
or you can use an integer sequence and then scale and shift it.

Eric

>
> All the best
>
>




More information about the NumPy-Discussion mailing list