[SciPy-user] Vector indexing

David Grant david.grant at telus.net
Mon Jun 5 00:08:38 CDT 2006


On Sunday 04 June 2006 17:17, Robert Kern wrote:
> David Grant wrote:
> > Vector indexing question:
> >
> > a=rand(10,10)
> >
> > 1) a[0:3, 0:3] #gives me the first 3 rows and columns
> >
> > 2) a[range(2),range(2)] gives me a one-dimensional array of elements
> > [0,0], [1,1], [2,2]
>
> Actually, it gets you array([a[0,0], a[1,1]]).

There I go again with my 1-indexed arrays...thanks Matlab. ;-)

> > How do I do 1) using some on-the-fly generated array?
>
> Slice objects.
>
> >>> a[slice(0, 3), slice(0, 3)]
>
> array([[ 0.83840663,  0.36944056,  0.48230632],
>        [ 0.04508558,  0.25772124,  0.62787961],
>        [ 0.0455162 ,  0.69427227,  0.26374691]])

But let's say that you didn't want a slice, but you wanted to grab some random 
rows and columns. Simon's solution seems to do the trick: a[x,:][:,y] which I 
guess is just performing indexing on it twice.

Dave



More information about the SciPy-user mailing list