On 02/09/2012 09:20 AM, Drew Frank wrote: > Eric Firing<efiring<at> hawaii.edu> writes: > >> >> 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 >>> >>> >> > I also found this surprising -- not because I lack experience with floating > point, but because I do have experience with MATLAB. In MATLAB, the > corresponding operation 3.1:0.1:4.9 has length 19 because of an explicit > tolerance parameter used in the implmentation > (http://www.mathworks.com/support/solutions/en/data/1-4FLI96/index.html?solution=1-4FLI96). > > Of course, NumPy is not MATLAB :). That said, I prefer the MATLAB behavior in > this case -- even though it has a bit of a "magic" feel to it, I find it hard > to > imagine code that operates correctly given the Python semantics and > incorrectly > under MATLAB's. Thoughts?
You raise a good point. Neither arange nor linspace provides a close equivalent to the nice behavior of the Matlab colon, even though that is often what one really wants. Adding this, either via an arange kwarg, a linspace kwarg, or a new function, seems like a good idea. Eric > > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion