[Numpy-discussion] Selected and altering a submatrix
lists.steve at arachnedesign.net
Mon Jan 29 22:29:24 CST 2007
I was just curious what the "correct" (fast) way to select and alter
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.
More information about the Numpy-discussion