title: Python delete row in numpy array
body: <p>I have a large numpy array (8 by 30000) and I want to delete some rows according to some criteria. This criteria is only applicable in one column.</p>
  
  <p>Example:</p>
  
  <pre><code>&gt;&gt;&gt; p = np.array([[0, 1, 3], [1 , 5, 6], [4, 3, 56], [1, 34, 4]])
  &gt;&gt;&gt; p
  array([[ 0,  1,  3],
     [ 1,  5,  6],
     [ 4,  3, 56],
     [ 1, 34,  4]])
  </code></pre>
  
  <p>here I would like to remove every row in which the value of the 3rd column is >30, ie. here row 3.</p>
  
  <p>As the array is pretty large, I'd like to avoid <code>for</code> loops. I thought of this:</p>
  
  <pre><code>&gt;&gt;&gt; a[~(a&gt;30).any(1), :]
  array([[0, 1, 3],
     [1, 5, 6]])
  </code></pre>
  
  <p>But there, it obviously removes the two last rows. Any ideas on how to do that in a efficient way?</p>