title: Why is casting np.uint8 array to np.float16 array is slower than casting np.uint8 to np.float32 array?
body: <p>I couldn't find any explanation to this, the <code>ndarray.astype()</code> returns a new array, so I was expecting it to be faster with np.float16 in comparison to np.float32 to since it allocates less memory. However it takes more than double the time.</p>
  <pre><code>original_array = np.ones([10,512,1280,3], dtype=np.uint8) 
  </code></pre>
  <p>Here are the results :</p>
  <pre><code>%%timeit -r 10
  float16_array = original_array.astype(np.float16)
  </code></pre>
  <p>93.5 ms ± 1.68 ms per loop (mean ± std. dev. of 10 runs, 10 loops each)</p>
  <pre><code>%%timeit -r 10
  float32_array = original_array.astype(np.float32)
  </code></pre>
  <p>41.4 ms ± 278 µs per loop (mean ± std. dev. of 10 runs, 10 loops each)</p>