title: boolean masking inner dimensions of ndarray using same mask
body: <p>I have a 3d ndarray and I want to remove all values of lower dimensions given the same mask efficiently and cleanly. Hopefully code below explains what I'm looking for better:</p>
  
  <pre><code>arr   = np.random.randint(0,3, (5, 3,4))
  bmask = arr[0] &gt; 0 
  
  #######
  #Naive way
  ########
  result = []
  for i in range(arr.shape[0]):
      result.append(arr[i][bmask])
  result = np.stack(result)
  
  ####### 
  # Better Way
  #######
  better_way = ???????
  
  
  assert np.all(result == better_way)
  </code></pre>