Skip to content

Instantly share code, notes, and snippets.

@tomotaka
Last active August 29, 2015 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tomotaka/74145b402f84b549a4bd to your computer and use it in GitHub Desktop.
Save tomotaka/74145b402f84b549a4bd to your computer and use it in GitHub Desktop.
mean calculation benchmark
import numpy as np
import random
import time
from contextlib import contextmanager
data = []
for i in xrange(300000):
data.append(random.randint(1, 100000000))
float_data = []
for i in xrange(300000):
float_data.append(random.random() * 10000000)
@contextmanager
def measure(label):
t1 = time.time()
yield
t2 = time.time()
print '%s: %.3fsec' % (label, t2 - t1)
n = 500
with measure('normal-comprehension'):
for i in xrange(n):
sum([ float(i) for i in data ]) / len(data)
with measure('normal-map'):
for i in xrange(n):
sum(map(float, data)) / len(data)
with measure('normal-last-float-conversoin'):
for i in xrange(n):
float(sum(data)) / len(data)
with measure('normal-float'):
for i in xrange(n):
sum(float_data) / len(float_data)
with measure('numpy-mean'):
for i in xrange(n):
np.mean(data)
with measure('numpy-mean-float'):
for i in xrange(n):
np.mean(float_data)
with measure('numpy-mean-with-numpy-array'):
for i in xrange(n):
data2 = np.array(data)
np.mean(data2)
with measure('numpy-mean-with-numpy-array-float'):
for i in xrange(n):
data2 = np.array(float_data)
np.mean(data2)
nparray_data = np.array(data)
with measure('numpy-mean-to-numpy-array'):
for i in xrange(n):
np.mean(nparray_data)
nparray_float_data = np.array(data)
with measure('numpy-mean-to-numpy-array-float'):
for i in xrange(n):
np.mean(nparray_float_data)
@tomotaka
Copy link
Author

result on my laptop(MacBook Pro 15inch, 2.8Ghz Core i7 4cores)

normal-comprehension: 28.850sec
normal-map: 13.352sec
normal-last-float-conversoin: 0.855sec
normal-float: 0.815sec
numpy-mean: 6.043sec
numpy-mean-float: 3.352sec
numpy-mean-with-numpy-array: 6.065sec
numpy-mean-with-numpy-array-float: 3.382sec
numpy-mean-to-numpy-array: 0.182sec
numpy-mean-to-numpy-array-float: 0.175sec

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment