Skip to content

Instantly share code, notes, and snippets.

@TheNeuralBit
Created August 7, 2019 17:18
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 TheNeuralBit/158dff3fa90dc46a369bb014e913650d to your computer and use it in GitHub Desktop.
Save TheNeuralBit/158dff3fa90dc46a369bb014e913650d to your computer and use it in GitHub Desktop.
from timeit import timeit
N = int(1E6)
def bench_conversion(int_size):
np_to_int = timeit('int(i)', setup='import numpy as np; i=np.int%d(4528)' % int_size, number=N)
int_to_np = timeit('np.int%d(i)' % int_size, setup='import numpy as np; i=int(4528)', number=N)
np_to_np = timeit('np.int%d(i)' % int_size, setup='import numpy as np; i=np.int%d(4528)' % int_size, number=N)
print("np.int%d to int:\t%.3f ns/op" % (int_size, np_to_int*1E9/N))
print("int to np.int%d:\t%.3f ns/op" % (int_size, np_to_int*1E9/N))
print("np.int%d to np.int%d:\t%.3f ns/op" % (int_size, int_size, np_to_int*1E9/N))
pass_ = timeit('pass', setup='import numpy as np',number=N)
print("pass:\t%.3f ns/op" % (pass_*1E9/N))
int_to_int = timeit('int(i)', setup='import numpy as np; i = int(4528)', number=N)
print("int to int:\t%.3f ns/op" % (int_to_int*1E9/N))
for int_size in (8, 16, 32, 64):
bench_conversion(int_size)
# Output on my Desktop
# System python, v2.7.16
# ----
# pass: 6.117 ns/op
# int to int: 71.524 ns/op
# np.int8 to int: 89.784 ns/op
# int to np.int8: 89.784 ns/op
# np.int8 to np.int8: 89.784 ns/op
# np.int16 to int: 86.715 ns/op
# int to np.int16: 86.715 ns/op
# np.int16 to np.int16: 86.715 ns/op
# np.int32 to int: 89.172 ns/op
# int to np.int32: 89.172 ns/op
# np.int32 to np.int32: 89.172 ns/op
# np.int64 to int: 88.072 ns/op
# int to np.int64: 88.072 ns/op
# np.int64 to np.int64: 88.072 ns/op
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment