Lets say I have a 4x4 numpy array: quad = arange(16).reshape(4,4), i.e.
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]
and I want to change the elements with values,
[[ 5  7]
 [ 9 11]]
to (for example),
[[16 17]
 [18 19]]
My initial guess was that I could do something like,
quad[[1,3],[1,3]] = np.arange(16,20).reshape(2,2)
but that doesn't work, as quad[[1,3],[1,3]] actually yields the elements corresponding to [5,11].  I found that I could view the appropriate elements using quad[[1,3]][:,[1,3]] but I can't use that to modify those values.
Is the only solution to use a for loop?