[SciPy-dev] Fancy indexing curiosity

Pearu Peterson pearu at scipy.org
Sun Jan 8 02:58:08 CST 2006



On Sun, 8 Jan 2006, Travis Oliphant wrote:

>> Thanks for this corner case.  Actually, it's getting whatever is in the
>> memory allocated.
>>
>> Try
>>
>> b = array('',x.dtype)
>>
>> b should be a size-0 array,  (there is actually 1 elementsize of memory
>> allocated for it though).
>>
>> The mapping code is iterating over b and resetting b whenever it runs
>> out of elements of b (every time in this case), except the data pointed
>> to by the iterator is never valid so this should not be allowed....
>>
>> I suppose instead, creating an iterator from a size-0 array could raise
>> an error.  This would be a great and simple place to catch this in the
>> code as well.
>>
> This now raises an error....

I guess the following behaviour is related to recent changes on svn, as 
well as causing some of the unittests to fail:

In [1]: from numpy import *

In [2]: a=array([])

In [3]: equal(a,a)
---------------------------------------------------------------------------
exceptions.ValueError                                Traceback (most 
recent call last)

/home/pearu/<console>

ValueError: Cannot iterate over a size-0 array

In [5]: a==a
Out[5]: False

In [6]: a is a
Out[6]: True

I would expect that empty sets are always equal to each other.

Pearu




More information about the Scipy-dev mailing list