I was amazed by the difference in computation time between C++ and Python. I tried to do the same in my PC and compared with what I can obtain using the numpy library. Below the result.

#! /usr/bin/python2.7 from datetime import datetime flips = 4000000 def regularPython(): import random heads = 0 for i in range(flips): if random.randint(0,1) == 0: heads+=1 tails = flips-heads print 'heads=',heads print 'tails=',tails def numpyVersion1(): import numpy as np heads = 0 for i in range(flips): if np.random.random_integers(0,1) == 0: heads+=1 tails = flips-heads print 'heads=',heads print 'tails=',tails def numpyVersion2(): import numpy as np randomArray = np.random.random_integers(0,1,flips) heads = len(randomArray[randomArray==0]) tails = flips-heads print 'heads=',heads print 'tails=',tails if __name__=="__main__": t_start = datetime.now() regularPython() t_end = datetime.now() print "Total time: ", (t_end-t_start) t_start = datetime.now() numpyVersion1() t_end = datetime.now() print "Total time: ", (t_end-t_start) numpyVersion2() t_end = datetime.now() print "Total time: ", (t_end-t_start)

Here the output:

heads= 2001161 tails= 1998839 Total time:0:00:06.139672heads= 1999621 tails= 2000379 Total time:0:00:01.597668heads= 1999881 tails= 2000119 Total time:0:00:01.707101

## No comments:

## Post a Comment