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