title: What is the difference between np.float64 and np.double?
body: <p>I tried running the following code to find out the difference between <code>float64</code> and <code>double</code> in <code>numpy</code>. The result is interesting as type double takes almost double the time compared with time taken for multiplication with <code>float64</code>. Need some light on this.</p>
  
  <pre><code>import time
  import numpy as np
  
  datalen = 100000
  times = 10000
  
  a = np.random.rand(datalen)
  b = np.random.rand(datalen)
  
  da = np.float64(a)
  db = np.float64(a)
  
  dda = np.double(a)
  ddb = np.double(b)
  
  tic = time.time()
  for k in range(times):
      dd = dda * ddb
  toc = time.time()
  print (toc - tic), 'time taken for double'
  
  tic = time.time()
  for k in range(times):
      d = da * db
  toc = time.time()
  print (toc - tic), 'time taken for float64'
  </code></pre>