import timeit
sum_by_for = """
for d in data:
s += d
"""
sum_by_sum = """
sum(data)
"""
sum_by_numpy_sum = """
import numpy
numpy.sum(data)
"""
def timeit_using_list(n, loops):
list_setup = """
data =[1] * {}
s = 0
""".format(n)
print('list result:')
print(timeit.timeit(sum_by_for, list_setup, number = loops))
print(timeit.timeit(sum_by_sum, list_setup, number = loops))
print(timeit.timeit(sum_by_numpy_sum, list_setup, number = loops))
def timeit_using_array(n, loops):
array_setup = """
import array
data = array.array('L', [1] * {})
s = 0
""".format(n)
print('array result:')
print(timeit.timeit(sum_by_for, array_setup, number = loops))
print(timeit.timeit(sum_by_sum, array_setup, number = loops))
print(timeit.timeit(sum_by_numpy_sum, array_setup, number = loops))
def timeit_using_numpy(n, loops):
numpy_setup = """
import numpy
data = numpy.array([1] * {})
s = 0
""".format(n)
print('numpy result:')
print(timeit.timeit(sum_by_for, numpy_setup, number = loops))
print(timeit.timeit(sum_by_sum, numpy_setup, number = loops))
print(timeit.timeit(sum_by_numpy_sum, numpy_setup, number = loops))
if __name__ == '__main__':
timeit_using_list(30000, 500)
timeit_using_array(30000, 500)
timeit_using_numpy(30000, 500)