def prob3(): #problem 3 print "problem 3" A = rand(1000, 1000) number = 100 tm = ti("A.reshape(A.size)", setup="from __main__ import A", number=number) print "A.reshape(A.size) executed ", number, " times in ", tm, " seconds." number = 100 tm = ti("A.flatten()", setup="from __main__ import A", number=number) print "A.flatten() executed ", number, " times in ", tm, " seconds." number = ti("A.reshape((1,A.size))", setup="from __main__ import A", number=number) print "A.reshape((1,A.size)) executed ", number, " times in ", tm, " seconds." #part 2 of problem 3 print "the difference is that np.vstack(A) returns a new array" print "while A.T returns a view" print "A.T is much faster" A = rand(1, 1000000) number = 500 tm = ti("np.vstack(A)", setup="import numpy as np; from __main__ import A", number=number) print "np.vstack(A) executed ", number, " times in ", tm, " seconds." number = 500 tm = ti("A.T", setup="from __main__ import A", number=number) print "A.T executed ", number, " times in ", tm, " seconds."
def time(sizes): t1 = [] t2 = [] t3 = [] t4 = [] for size in sizes: A = rand(size, 10) B = rand(size, 10) t1.append( ti("dist1(A, B)", setup="from __main__ import dist1, A, B", number=10)) t2.append( ti("dist2(A, B)", setup="from __main__ import dist2, A, B", number=10)) t3.append( ti("dist3(A, B)", setup="from __main__ import dist3, A, B", number=10)) t4.append( ti("dist4(A, B)", setup="from __main__ import dist4, A, B", number=10)) print size times = np.empty((5, len(sizes))) times[0] = sizes times[1] = t1 times[2] = t2 times[3] = t3 times[4] = t4 np.save("times.npy", times)
def ltest2(): start = ti(number=1000) l = [] for i in range(1000): l.append(i) end = ti(number=1000) return start - end
def ltest1(): start = ti(number=1000) l = [] for i in range(1000): l = l + [i] end = ti(number=1000) return start - end
def RepeatingEvenList(aList): s = ti(number=10000) res = 0 for i in aList: res ^= i e = ti(number=10000) return res, s - e
def prob1(): k = 200 A = [range(i, i+k) for i in range(0, k**2, k)] number = 5 print "problem 1" tm = ti("arrmul(A,A)", setup="from __main__ import A, arrmul", number=number) print "arrmul(A,A) executed ", number, " times in ", tm, " seconds." A = np.array(A) number = 5 tm = ti("np.dot(A,A)", setup="import numpy as np; from __main__ import A", number=number) print "np.dot(A,A) executed ", number, " times in ", tm, " seconds."
def array_vs_list(): k = 200 A = [range(i, i+k) for i in range(0, k**2, k)] number = 5 print "problem 1" tm = ti("arrmul(A,A)", setup="from __main__ import A, arrmul", number=number) print "arrmul(A,A) executed ", number, " times in ", tm, " seconds." A = np.array(A) number = 5 tm = ti("np.dot(A,A)", setup="import numpy as np; from __main__ import A", number=number) print "np.dot(A,A) executed ", number, " times in ", tm, " seconds."
def time(sizes): t1 = [] t2 = [] t3 = [] t4 = [] for size in sizes: A = rand(size, 10) B = rand(size, 10) t1.append(ti("dist1(A, B)", setup="from __main__ import dist1, A, B", number=10)) t2.append(ti("dist2(A, B)", setup="from __main__ import dist2, A, B", number=10)) t3.append(ti("dist3(A, B)", setup="from __main__ import dist3, A, B", number=10)) t4.append(ti("dist4(A, B)", setup="from __main__ import dist4, A, B", number=10)) print size times = np.empty((5, len(sizes))) times[0] = sizes times[1] = t1 times[2] = t2 times[3] = t3 times[4] = t4 np.save("times.npy", times)
def UsingDict(aList): s = ti(number=10000) #d={i: aList.count(i) for i in aList } d = {} for i in aList: if i in d: d[i] += 1 else: d[i] = 1 res = 0 for k, v in d.items(): if v == 1: res = k e = ti(number=10000) return res, s - e
def prob3(): A = rand(1000,1000) number = 100 tm = ti("A.reshape(A.size)", setup="from __main__ import A", number=number) print "A.reshape(A.size) executed ", number, " times in ", tm, " seconds." number = 100 tm = ti("A.flatten()", setup="from __main__ import A", number=number) print "A.flatten() executed ", number, " times in ", tm, " seconds." number = ti("A.reshape((1,A.size))", setup="from __main__ import A", number=number) print "A.reshape((1,A.size)) executed ", number, " times in ", tm, " seconds." #part 2 of problem 3 print "the difference is that np.vstack(A) returns a new array" print "while A.T returns a view" print "A.T is much faster" A = rand(1,1000000) number = 500 tm = ti("np.vstack(A)", setup="import numpy as np; from __main__ import A", number=number) print "np.vstack(A) executed ", number, " times in ", tm, " seconds." number = 500 tm = ti("A.T", setup="from __main__ import A", number=number) print "A.T executed ", number, " times in ", tm, " seconds."
from kivy.uix.widget import Widget from random import randint import timeit.timeit as ti from functools import partial import utilfuncs import circle_collide as cc if __name__ == '__main__': t1 = #[Widget(pos=(randint(0, 800), randint(0, 600)) #for i in range(2)] ti(partial(cc, t1[0], t1[1])) ti(t1[0].collide_widget())
i = 2 num = [0] * (n + 1) p = [] while (i * i <= n): j = i while (j * i <= n): num[i * j] = 1 j += 1 i += 1 for i in xrange(2, n + 1): if num[i] == 0: p.append(i) return p def factorize(n): sq = int(n**0.5) p = seive(sq) c = Counter() for prime in p: while (n % prime == 0): n /= prime c[prime] += 1 return c #print factorize(10000) print ti("factorize(1213231313131)", setup="from __main__ import factorize", number=1)
def ltest4(): start = ti(number=1000) l = list(range(1000)) end = ti(number=1000) return start - end
def smaller_than_3(x): if x < 3: return True else: return False grp = groupby(a, smaller_than_3) print("groupby fun:\n") #print(list(grp)) for key, value in grp: print(key, list(value)) count = 0 start = ti() for i in cycle(a): print(i) count += 1 if count == 10: break end = ti() print("time taken for cycle fun: " + str(end - start)) start = ti() for i in repeat(5, 10): print(i) end = ti() print("time taken for cycle fun: " + str(end - start))
def ltest3(): start = ti(number=1000) l = [i for i in range(1000)] end = ti(number=1000) return start - end
""" Lattice paths Submit Show HTML problem content Problem 15 Starting in the top left corner of a 2×2 grid, and only being able to move to the right and down, there are exactly 6 routes to the bottom right corner. How many such routes are there through a 20×20 grid? Answer: 137846528820 Completed on Sun, 8 Jul 2018, 15:46 """ import math from timeit import default_timer as ti import os.path as op # Solution 1 def latticePaths(n, m): return int(math.factorial(n+m) / (math.factorial(n)*math.factorial(m))) t11 = ti() print(f"The answer to Project Euler, {op.basename(__file__)[:-3]} is: " + str(latticePaths(20, 20))) t12 = ti() print("Time lapsed for solution number 1: " + str((t12-t11)*10**6) + u'\u03BC' + "s")
50000, 100000, 500000, 1000000, 5000000, 10000000, 15000000, 20000000, 25000000]) rowdot_sizes = np.array([10, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600]) dot_times = np.empty((len(dot_sizes),3)) rowdot_times = np.empty((len(rowdot_sizes),3)) for n, times in zip(dot_sizes, dot_times): A = rand(n) B = rand(n) times[0] = ti("pydot(A, B)", setup="from __main__ import A, B, pydot", number=5) / 5. times[1] = ti("cydot(A, B)", setup="from __main__ import A, B, cydot", number=500) / 500. times[2] = ti("A.dot(B)", setup="from __main__ import A, B", number = 500) / 500. for n, times in zip(rowdot_sizes, rowdot_times): A = rand(n, 3) times[0] = ti("pyrowdot(A)", setup="from __main__ import A, pyrowdot", number=1) times[1] = ti("cyrowdot(A)", setup="from __main__ import A, cyrowdot", number=10) / 10. times[2] = ti("A.dot(A.T)", setup="from __main__ import A", number=10) / 10. # plot dot product results ax = plt.subplot(1,1,1) p1, = plt.plot(dot_sizes, np.log(dot_times[:,0]), label="Python times") p2, = plt.plot(dot_sizes, np.log(dot_times[:,1]), label="Cython times") p3, = plt.plot(dot_sizes, np.log(dot_times[:,2]), label="Numpy with MKL times") handles, labels = ax.get_legend_handles_labels()
10000000, 15000000, 20000000, 25000000 ]) rowdot_sizes = np.array([ 10, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600 ]) dot_times = np.empty((len(dot_sizes), 3)) rowdot_times = np.empty((len(rowdot_sizes), 3)) for n, times in zip(dot_sizes, dot_times): A = rand(n) B = rand(n) times[0] = ti( "pydot(A, B)", setup="from __main__ import A, B, pydot", number=5) / 5. times[1] = ti("cydot(A, B)", setup="from __main__ import A, B, cydot", number=500) / 500. times[2] = ti("A.dot(B)", setup="from __main__ import A, B", number=500) / 500. for n, times in zip(rowdot_sizes, rowdot_times): A = rand(n, 3) times[0] = ti("pyrowdot(A)", setup="from __main__ import A, pyrowdot", number=1) times[1] = ti("cyrowdot(A)", setup="from __main__ import A, cyrowdot", number=10) / 10. times[2] = ti("A.dot(A.T)", setup="from __main__ import A",
from timeit import default_timer as ti my_list = ['abc'] * 10 start = ti() my_string = ''.join(my_list) stop = ti() print(stop - start) print(my_string)