# publicnumpy/numpy

### Subversion checkout URL

You can clone with HTTPS or Subversion.

Fetching contributors…

Cannot retrieve contributors at this time

file 49 lines (41 sloc) 1.555 kb
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 `import timeit# This is to show that NumPy is a poorer choice than nested Python lists# if you are writing nested for loops.# This is slower than Numeric was but Numeric was slower than Python lists were# in the first place.N = 30code2 = r"""for k in xrange(%d): for l in xrange(%d): res = a[k,l].item() + a[l,k].item()""" % (N,N)code3 = r"""for k in xrange(%d): for l in xrange(%d): res = a[k][l] + a[l][k]""" % (N,N)code = r"""for k in xrange(%d): for l in xrange(%d): res = a[k,l] + a[l,k]""" % (N,N)setup3 = r"""import randoma = [[None for k in xrange(%d)] for l in xrange(%d)]for k in xrange(%d): for l in xrange(%d): a[k][l] = random.random()""" % (N,N,N,N)numpy_timer1 = timeit.Timer(code, 'import numpy as np; a = np.random.rand(%d,%d)' % (N,N))numeric_timer = timeit.Timer(code, 'import MLab as np; a=np.rand(%d,%d)' % (N,N))numarray_timer = timeit.Timer(code, 'import numarray.mlab as np; a=np.rand(%d,%d)' % (N,N))numpy_timer2 = timeit.Timer(code2, 'import numpy as np; a = np.random.rand(%d,%d)' % (N,N))python_timer = timeit.Timer(code3, setup3)numpy_timer3 = timeit.Timer("res = a + a.transpose()","import numpy as np; a=np.random.rand(%d,%d)" % (N,N))print "shape = ", (N,N)print "NumPy 1: ", numpy_timer1.repeat(3,100)print "NumPy 2: ", numpy_timer2.repeat(3,100)print "Numeric: ", numeric_timer.repeat(3,100)print "Numarray: ", numarray_timer.repeat(3,100)print "Python: ", python_timer.repeat(3,100)print "Optimized: ", numpy_timer3.repeat(3,100)`
Something went wrong with that request. Please try again.