title: Python Numpy: Confusion - why iterate in numpy
body: <p>I'm programming in pure Python for 2 years.</p>
  
  <p>Now I am learning Numpy and I am confused.</p>
  
  <p>In tutorials has given examples that Numpy is way more efficient than pure python. Given examples, but when I try for example simple iteration:</p>
  
  <pre><code>import numpy as np
  import time
  start = time.time()
  list = range(1000000)
  array = np.arange(1000000)
  
  for element in list:
      pass
  print('\n'+str((time.time() - start)*1000)+'\n')
  start = time.time()
  for element in np.nditer(array, order='F'):
      pass
  print('\n'+str((time.time() - start)*1000)+'\n')
  </code></pre>
  
  <p>I got an output:</p>
  
  <blockquote>
    <p>87.67843246459961</p>
    
    <p>175.25482177734375</p>
  </blockquote>
  
  <p>As may be seen upper, iteration over Numpy is way less efficient than pure Python.</p>
  
  <p>My question is: I do not understand and cannot myself explain why to use Numpy, and moreso: when to use it?</p>