title: How to do 2d interpolation in a grid for a list of points
body: <p>It seems a few relevant questions here didn't give me the answer I want. </p>
  
  <p>So I have a 2D look up table which is a 2D grid with values at grid coordiates. For example, such table can be generated by code below:</p>
  
  <pre><code>xx, yy = np.meshgrid(np.arange(100), np.arange(100))
  zz = some_function(xx, yy)
  </code></pre>
  
  <p>now I have a list of coordinates of scattered points on the grid, for example, I can generate such coordinates by:</p>
  
  <pre><code>xs = np.random.rand(10) * 100
  ys = np.random.rand(10) * 100
  
  scattered_points = [(x, y) for x, y in zip(xs, ys)]
  </code></pre>
  
  <p>How can I interpolate out the z value for these 10 points?
  I only find out that I can do this by searching the neighboring grid points of (x, y) and perform interpolation there. It is fine for a few points but I just wonder if there is a better/pythonic way to do that using <code>numpy</code>/<code>scipy</code>.</p>