jmiller at stsci.edu
Tue Oct 8 05:07:04 CDT 2002
Pearu Peterson wrote:
>On Mon, 7 Oct 2002, Todd Miller wrote:
>>Pearu Peterson wrote:
>>>On Mon, 7 Oct 2002, Todd Miller wrote:
>>>>The subject line contains what I consider to be an invalid range
>>>>expression. Numarray, now and always, reacts badly to it. Currently,
>>>>numarray tries to allocate a multi-gigabyte array. In the past, it has
>>>>The question is, what should it do?
>>>>1. raise ValueError, "Invalid negative range expression" (my +1)
>>>>2. zeros((0,), 'l')
>>>> (Numeric does this)
>>>>Is there a good justification to keep the existing Numeric behavior?
>>>>Any other suggestions?
>>>Does Numarray support empty arrays? If yes, I'd vote for Python behavior:
>>Numarray has no problem with empty arrays so both choices are easy to
>>implement. It apparently has a different repr (than Numeric) for
>>"nothing" which is:
>Hmm, so it means that Numeric.arange is consistent with Python range after
>all. Then I'd like to change my vote from exception to array() (if it
>is not too late).
>Rationale: sometimes using
> range(i1) + range(i2) + range(i3)
>can save lots of code if the indices i1,i2,i3 can also be negative with
>the meaning that the resulting lists are then empty. If using arange, then
>the above would be equivalent to
>for short. Now, if arange would raise an exception if one of i1,i2,i3 is
>negative, then the above would not work without checking i1,i2,i3 first.
>And I find that bad because additional (read: meaningless) code is
Well, as fate would have it, your vote was already mis-cast in favor of
Numeric compatability. However, you've changed my mind, so I'm changing
*my* vote. That leaves the current vote at +2 "raise", +3 "compatible",
so barring any new votes, I'll check it in as Numeric compatible
(returning an empty range) at COB today.
Todd Miller jmiller at stsci.edu
STSCI / SSB
More information about the Numpy-discussion