# [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]]
>>
>> 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

```