title: numpy : How to convert an array type quickly
body: <p>I find the astype() method of numpy arrays not very efficient. I have an array containing
  3 million of Uint8 point. Multiplying it by a 3x3 matrix takes 2 second, but converting the result from uint16 to uint8 takes another second.</p>
  
  <p>More precisely :</p>
  
  <pre><code>    print time.clock()
      imgarray = np.dot(imgarray,  M)/255
      print time.clock()
      imgarray = imgarray.clip(0, 255)
      print time.clock()
      imgarray = imgarray.astype('B')
      print time.clock()
  </code></pre>
  
  <p>dot product and scaling takes 2 sec<br>
  clipping takes 200 msec
  type conversion takes 1 sec</p>
  
  <p>Given the time taken by the other operations, I would expect <code>astype</code> to be faster.
  Is there a faster way to do type conversion, or am I wrong when guesstimating that type conversion should not be that hard ?</p>
  
  <p>Edit : the goal is to save the final 8 bit array to a file</p>