# [SciPy-User] indexing array without changing the ndims

Gabriel Gellner ggellner@uoguelph...
Tue Jan 26 06:14:27 CST 2010

```Perfect! I always wondered what the use for i:i+1 slices are! It will
take a little bit of thinking on how to use this for an arbitrary key,
but you guys rock! Thanks.

Gabriel

On Tue, Jan 26, 2010 at 1:39 AM, Gabriel Gellner <ggellner@uoguelph.ca> wrote:
> On Mon, Jan 25, 2010 at 10:08 PM, Warren Weckesser
> <warren.weckesser@enthought.com> wrote:
>> Gabriel Gellner wrote:
>>> I really want an easy way to index an array but not have numpy
>>> simplify the shape (if you know R I want their drop=FALSE behavior).
>>>
>>
>> For those of us who aren't familiar with R, could you give a concrete
>> example of what you want to do?
>>
> It would be the similar to what the numpy.matrix class does, namely
> when you use an index like
> `mat[0, :]` you still have ndims == 2 (a column matrix in this case).
> So I want this behavior for an ndarray so I could be certain that if I
> do any indexing the ndims of the returned array is the same as the
> original array.
>
> In R any array can be indexed with an extra keyword argument
> drop=FALSE to give this behavior so for the above I would have
> `mat[0, :, drop=False]` (in pretend python notation, in R we would
> write mat[1,, drop=F]) and it would do the right thing. An even more
> extreme example would be to do something like
>
> `zeros((3, 3, 3))[0, 0, 0, drop=False]` (In R `array(0, c(3, 3, 3))[1,
> 1, 1, drop=F]`) which would return an array with shape == (1, 1, 1)