[Numpy-discussion] more complex matrix operation

Gerardo Berbeglia gberbeglia at gmail.com
Mon Mar 15 10:58:14 EDT 2010


I have another matrix operations which seems a little more complicated.

Let A be an n x n matrix and let S be a subset of {0,...,n-1}. Assume
S is represented by a binary vector s, with a 1 at the index i if i is
in S. (e.g. if S={0,3} then s = [1,0,0,1])

I would like to have an efficient way to compute the function B = f
(A,S) characterized as follows:

- For each column i such that i is in S, then the column i of B is
equal to the column i of A.

- For each column i such that i is NOT in S, then the column i of B is
equal to the ith column of the n x n identity matrix.

Example. n=4.
A = [[2,2,2,2],[3,3,3,3][4,4,4,4][5,5,5,5]]
S = {0,2} => s=[1,0,1,0]

f(A,S) = [[2,2,2,2],[0,1,0,0],[4,4,4,4],[0,0,0,1]]

Which is the best way to compute f?

Thanks again.



More information about the NumPy-Discussion mailing list