[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