title: How to add a 2D subarray in an existing 2D array using numpy?
body: <p>I am having problem to add a subarray to an existing 2D array.
  I am actually new to numpy and python and coming from MATLAB this was something trivial to do.
  Note that usually a is a big matrix in my problems.</p>
  
  <pre><code>import numpy as np
  
  a = np.array(arange(16)).reshape(4,4) # The initial array
  b = np.array(arange(4)).reshape(2,2) # The subarray to add to the initial array
  ind = [0,3] # The rows and columns to add the 2x2 subarray 
  
  a[ind][:,ind] += b #Doesn't work although does not give an error
  </code></pre>
  
  <p>I saw looking around that the following can work</p>
  
  <pre><code>a[:4:3,:4:3] += b
  </code></pre>
  
  <p>but how can I define ind beforehand?
  In addition how to define ind if it consists of more than two numbers that cannot be expressed with a stride? for example ind = [1, 15, 34, 67]</p>