title: Sorting a 2D numpy array by multiple axes
body: <p>I have a 2D numpy array of shape (N,2) which is holding N points (x and y coordinates). For example:</p>
  
  <pre><code>array([[3, 2],
         [6, 2],
         [3, 6],
         [3, 4],
         [5, 3]])
  </code></pre>
  
  <p>I'd like to sort it such that my points are ordered by x-coordinate, and then by y in cases where the x coordinate is the same. So the array above should look like this:</p>
  
  <pre><code>array([[3, 2],
         [3, 4],
         [3, 6],
         [5, 3],
         [6, 2]])
  </code></pre>
  
  <p>If this was a normal Python list, I would simply define a comparator to do what I want, but as far as I can tell, numpy's sort function doesn't accept user-defined comparators.  Any ideas?</p>
  
  <hr>
  
  <p>EDIT: Thanks for the ideas! I set up a quick test case with 1000000 random integer points, and benchmarked the ones that I could run (sorry, can't upgrade numpy at the moment).</p>
  
  <pre><code>Mine:   4.078 secs 
  mtrw:   7.046 secs
  unutbu: 0.453 secs
  </code></pre>