splitting numpy array unevenly

Wanderer wanderer at dialup4less.com
Tue Sep 18 10:02:02 EDT 2012


On Monday, September 17, 2012 7:43:06 PM UTC-4, Martin De Kauwe wrote:
> On Tuesday, September 18, 2012 8:31:09 AM UTC+10, Wanderer wrote:
> 
> > I need to divide a 512x512 image array with the first horizontal and vertical division 49 pixels in. Then every 59 pixels in after that. hsplit and vsplit want to start at the edges and create a bunch of same size arrays. Is there a command to chop off different sized arrays?
> 
> > 
> 
> > 
> 
> > 
> 
> > Thanks
> 
> 
> 
> I don't know that I follow completely, but can't you just slice what you are after?
> 
> 
> 
> x = np.random.rand(512*512).reshape(512,512)
> 
> xx = x[0,:49]
> 
> And put the rest of the slices in a loop...?

I was trying to avoid the loop. I figured it out. hsplit and vsplit will work. I just need to give it a list of break points. I still need a loop though.

breakPoints = range(49,512,59)
rowArrays = hsplit(InputArray, breakPoints)
OutArrays = []
for r in rowArrays:
    OutArrays.append(vsplit(r, breakPoints))



More information about the Python-list mailing list