title: How to properly mask a numpy 2D array?
body: <p>Say I have a two dimensional array of coordinates that looks something like</p>
  
  <p><code>x = array([[1,2],[2,3],[3,4]])</code></p>
  
  <p>Previously in my work so far, I generated a mask that ends up looking something like</p>
  
  <p><code>mask = [False,False,True]</code></p>
  
  <p>When I try to use this mask on the 2D coordinate vector, I get an error</p>
  
  <pre><code>newX = np.ma.compressed(np.ma.masked_array(x,mask))
  
  &gt;&gt;&gt;numpy.ma.core.MaskError: Mask and data not compatible: data size 
     is 6, mask size is 3.`
  </code></pre>
  
  <p>which makes sense, I suppose. So I tried to simply use the following mask instead:</p>
  
  <pre><code>mask2 = np.column_stack((mask,mask))
  newX = np.ma.compressed(np.ma.masked_array(x,mask2))
  </code></pre>
  
  <p>And what I get is close:</p>
  
  <p><code>&gt;&gt;&gt;array([1,2,2,3])</code></p>
  
  <p>to what  I would expect (and want):</p>
  
  <p><code>&gt;&gt;&gt;array([[1,2],[2,3]])</code></p>
  
  <p>There must be an easier way to do this?</p>