I have a 2D numpy array and I have a arrays of rows and columns which should be set to a particular value. Lets consider the following example
a = array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
I want to modify entries at rows [0,2] and columns [1,2]. This should result in the following array
a = array([[1, 2, 0],
[4, 5, 0],
[7, 8, 9]])
I did following and it resulted in modifying each sequence of column in every row
rows = [0,1]
cols = [2,2]
b=a[numpy.ix_(rows,columns)]
It resulted in the following array modifying every column of the specified array
array([[1, 0, 0],
[4, 5, 6],
[7, 0, 0]])
Some one could please let me know how to do it?
Thanks a lot
EDIT: It is to be noted that rows and columns coincidently happend to be sequentia. The actual point is that these could be arbitrary and in any order. if it is rows = [a,b,c] and cols=[n x z] then I want to modify exactly three elements at locations (a,n),(b,x),(c,z).
See Question&Answers more detail:
os