[SciPy-user] extracting elements of a matrix using arrays as indices

Michael Hearne mhearne@usgs....
Tue May 20 09:03:36 CDT 2008


All:  I'm porting some code from Matlab and I ran across a subtle  
difference between it and Numpy.

In Matlab:

a = [ 11 12 13 14 ;
21 22 23 24 ;
31 32 33 34 ];

a([1 3],[1 4])

gives you:

     11    14
     31    34

In Python:
a = array([[ 11, 12, 13, 14 ],
[ 21, 22, 23, 24 ],
[ 31, 32, 33, 34 ]])

a[[0,2],[0,3]]

gives you:

array([11, 34])

I tried to find an example of how to do this, and the normally very  
helpful page at http://mathesaurus.sourceforge.net/matlab-numpy.html  
has this:

a.take([0,2]).take([0,3], axis=1)

which gives me:

ValueError: axis(=1) out of bounds

So, I have two questions:

1) How do I actually get the equivalent behavior in Python?
2) Does anyone know the best way to contact Vidar Gundersen, the  
author of the above page to let him know about these errors?  It  
really is a useful resource, and I'd hate to have it continue to live  
with errors in it...

--Mike



------------------------------------------------------
Michael Hearne
mhearne@usgs.gov
(303) 273-8620
USGS National Earthquake Information Center
1711 Illinois St. Golden CO 80401
Senior Software Engineer
Synergetics, Inc.
------------------------------------------------------




More information about the SciPy-user mailing list