How about mat[0:3, 4:7] += 1
-Sebastian On 1/29/07, Steve Lianoglou <[EMAIL PROTECTED]> wrote: > Hi, > > I was just curious what the "correct" (fast) way to select and alter > a submatrix. > > For example, say I have a 10x10 array and only want to add some > number to the elements in the submatrix that consists of the [0,1,2] > th rows, and [4,5,6]th colums. > > You can imagine that those rows/cols select a square in the top- > middle of the 10x10 which I want to alter. > > The only way I can get this to work is if I iterate over the indices > in one of the dimensions (say the rows) and use the column indices to > slice out the relevant elements to add to .. is there a NumPy-thonic > way to do this: > > === > import numpy as N > mat = N.zeros((10,10)) > rows = [0,1,2] > cols = [4,5,6] > > for row in rows: > mat[row,cols] += 1 > > ==== > > I found something on the lists from a few years back that was in > reference to numeric or numarray that suggested doing some gymnastics > with take/put, but it still seemed as if there was no way to slice > out this view of a matrix w/o making a copy. > > Thanks, > -steve > _______________________________________________ > Numpy-discussion mailing list > Numpy-discussion@scipy.org > http://projects.scipy.org/mailman/listinfo/numpy-discussion > _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion