On Thu, Feb 9, 2012 at 3:40 PM, Benjamin Root <ben.r...@ou.edu> wrote:

>
>
> On Thursday, February 9, 2012, Sturla Molden <stu...@molden.no> wrote:
> >
> >
> > Den 9. feb. 2012 kl. 22:44 skrev eat <e.antero.ta...@gmail.com>:
> >
> >>
> > Maybe this issue is raised also earlier, but wouldn't it be more
> consistent to let arange operate only with integers (like Python's range)
> and let linspace handle the floats as well?
> >
> >
> > Perhaps. Another possibility would be to let arange take decimal
> arguments, possibly entered as text strings.
> > Sturla
>
>
> Personally, I treat arange() to mean, "give me a sequence of values from x
> to y, exclusive, with a specific step size".  Nowhere in that statement
> does it guarantee a particular number of elements.  Whereas linspace()
> means, "give me a sequence of evenly spaced numbers from x to y, optionally
> inclusive, such that there are exactly N elements". They complement each
> other well.
>

I agree -- both functions are useful and I think about them the same way.
The unfortunate part is that tiny precision errors in y can make arange
appear to be "sometimes-exclusive" rather than always exclusive.  I've
always imagined there to be a sort of duality between the two functions,
where arange(low, high, step) == linspace(low, high-step,
round((high-low)/step)) in cases where (high - low)/step is integral, but
it turns out this is not the case.


>
> There are times when I intentionally will specify a range where the step
> size will not nicely fit.  i.e.- np.arange(1, 7, 3.5). I wouldn't want this
> to change.
>

Nor would I.  What I meant to express earlier is that I like how Matlab
addresses this particular class of floating point precision errors, not
that I think arange output should somehow include both endpoints.


>
> My vote is that if users want matlab-colon-like behavior, we could make a
> new function - maybe erange() for "exact range"?
>

> Ben Root
>

That could work; it would completely replace arange for me in every
circumstance I can think of, but I understand we can't just go changing the
behavior of core functions.

Drew
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to