How to slice range of array along a (a-priori unknown) axis?

Maarten van Reeuwijk maarten at remove_this_ws.tn.tudelft.nl
Wed Feb 4 09:35:33 EST 2004


Hello,

I am using the Numeric package, and I need to strip edge cells off an array
(dimension unknown) in an a-priori unknown direction. I implented this as
follows:

def el_remove_bcells(var, axis):
   """ elementary routine to strip the edge cells of an array for the given
       direction.
   """

   if axis == 0:
      return var[1:-1]
   if axis == 1:
      return var[:, 1:-1]
   else:
      return var[:, :,1:-1]

But this only works for at most 3D arrays. It must be possible to program
this fragment without the ifs, for arrays of arbitrary dimension. Is there
a command in the Numerical package I can use for this? It is very important
that this method is very fast, as my arrays normally are in the order of
100 Mb. 

TIA, Maarten

-- 
===================================================================
Maarten van Reeuwijk                    Thermal and Fluids Sciences
Phd student                             dept. of Multiscale Physics
www.ws.tn.tudelft.nl                 Delft University of Technology



More information about the Python-list mailing list