[Numpy-discussion] Selected and altering a submatrix
Steve Lianoglou
lists.steve at arachnedesign.net
Mon Jan 29 23:29:24 EST 2007
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
More information about the NumPy-Discussion
mailing list