title: What does `x[False]` do in numpy?
body: <p>Say I have an array <code>x = np.arange(6).reshape(3, 2)</code>.</p>
  
  <p>What is the meaning of <code>x[False]</code>, or <code>x[np.asanyarray(False)]</code>? Both result in <code>array([], shape=(0, 3, 2), dtype=int64)</code>, which is unexpected.</p>
  
  <p>I expected to get an <code>IndexError</code> because of an improperly sized mask, as from something like <code>x[np.ones((2, 2), dtype=np.bool)]</code>.</p>
  
  <p>This behavior <em>is</em> consistent for <code>x[True]</code> and <code>x[np.asanyarray(True)]</code>, as both result in an additional dimension: <code>array([[[0, 1], [2, 3], [4, 5]]])</code>.</p>
  
  <p>I am using numpy 1.13.1. It appears that the behavior has changed recently, so while it is nice to have answers for older versions, please mention your version in the answers.</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>Just for completeness, I filed <a href="https://github.com/numpy/numpy/issues/9515" rel="nofollow noreferrer">https://github.com/numpy/numpy/issues/9515</a> based on the commentary on this question.</p>
  
  <p><strong>EDIT 2</strong></p>
  
  <p>And closed it almost immeditely.</p>