title: Performance of numpy.searchsorted is poor on structured arrays
body: <p><sub>Sorry in advance if I'm misusing any terms, feel free to correct that.</sub></p>
  
  <p>I have a sorted array with <code>dtype</code> <code>'&lt;f16, |S30'</code>. When I use <code>searchsorted</code> on its first field, it works really slow (about 0.4 seconds for 3 million items). That is much longer than <code>bisect</code> takes to do the same on a plain Python list of tuples.</p>
  
  <pre><code>%timeit a['f0'].searchsorted(400.)
  1 loops, best of 3: 398 ms per loop
  </code></pre>
  
  <p>However, if I copy the float part to another, separate array, the search is faster than <code>bisect</code>:</p>
  
  <pre><code>b = a['f0'].copy()
  
  %timeit b.searchsorted(400.)
  1000000 loops, best of 3: 945 ns per loop
  </code></pre>
  
  <p>My questions are:</p>
  
  <ol>
  <li>Am I doing something wrong or is it a regression in NumPy?</li>
  <li>Is there a way to circumvent this without duplication of the data?</li>
  </ol>