title: Numpy 2D array indexing without out of bound and with clipping value
body: <p>I have indices array </p>
  
  <pre><code>a = np.array([
     [0, 0],
     [1, 1],
     [1, 9]
  ])
  </code></pre>
  
  <p>And 2D array</p>
  
  <pre><code>b = np.array([
     [0, 1, 2, 3],
     [5, 6, 7, 8]
  ])
  </code></pre>
  
  <p>I can do this one</p>
  
  <pre><code>b[a[:, 0], a[:, 1]]
  </code></pre>
  
  <p>But it'll be an exception '<strong>out of bounds</strong>', because 9 is out of range. 
  I need a <em>very fast way</em> to make array slice by indices and it will be ideal if I can set a clip value, e.g.:</p>
  
  <pre><code>np.indexing_with_clipping(array=b, indices=a, clipping_value=0)
  &gt; array([0, 6, --&gt; 0 = clipped value &lt;--])
  </code></pre>