[Numpy-discussion] Status of numeric3 / scipylite / scipy_core

Travis Oliphant oliphant at ee.byu.edu
Thu Mar 17 15:02:24 CST 2005


Perry Greenfield wrote:

>
> On Mar 17, 2005, at 4:59 PM, Travis Oliphant wrote:
>
>> Perry Greenfield wrote:
>>
>>> Before I delve too deeply into what you are suggesting (or asking), 
>>> has the idea to have a slice be equivalent to an index array been 
>>> changed. For example, I recall seeing (I forget where), the 
>>> suggestion that
>>>
>>> X[:,ind] is the same as X[arange(X.shape[0]), ind]
>>>
>> This was in the PEP originally.  But, after talking with you and 
>> better understanding the "broadcasting" issues of the numarray 
>> indexing scheme, it seemed less like a good idea.  Then, during 
>> implementation it was easier to interpret slices differently.  A very 
>> natural usage fell out as I thought more about  partial indexing in 
>> Numeric:  X[ind] where X has more than 1 dimension returns in 
>> numarray something like
>>
>> result[i,j,k,...] = X[ind[i,j,k],...]
>>
>> It seems rather singular to have this Ellipsis-like character only 
>> useful for the ending dimensions of X.  Thus, I decided that 
>> X[...,ind] ought to be valid as well and return something like
>>
>> result[...,i,j,k] = X[...,ind[i,j,k]]
>>
>> So, yes, I've changed my mind (I sent an email about this when I woke 
>> up and realized a better solution).
>>
> Sorry if I missed that.
>
> Now that is cleared up, the use of slices you propose is essentially 
> as a index placeholder for an index not to be indexed by index arrays 
> (akin to what is implied by partial indexing). In that vein it makes 
> sense. Identical functionality could be had by reordering the indices, 
> doing partial indexing and then reordering to the original order. 
> That's clumsy for sure, but it probably isn't going to be done that 
> often. If you've already done it, great. Let me look it over in a bit 
> more detail tonight.

Yes, re-ordering could accomplish the same thing. 

I should warn you.  When I say "done" -- I mean I'm in the bug-fixing 
phase.  So,  expect segfaults..  I'm cleaning up as we speak.  I may not 
finish.  So, don't look at it unless you are interested in the 
implementation... because you may not get it to actually work for a day 
or two.

-Travis





More information about the Numpy-discussion mailing list