Skip to content

Instantly share code, notes, and snippets.

@TheDataLeek
Created August 4, 2017 17:28
Show Gist options
  • Save TheDataLeek/856754cf80c54d846b09255f381029fa to your computer and use it in GitHub Desktop.
Save TheDataLeek/856754cf80c54d846b09255f381029fa to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3.6
import time
import math
import numpy as np
import random
def distance(coord1, coord2):
return math.sqrt(sum((coord1[i] - coord2[i])**2
for i in range(len(coord1))))
def distance2(x, y):
pow2 = lambda x: math.pow(x,2)
vect_coord_distance = map( lambda tup: tup[0] - tup[1] , zip(coord1,coord2) )
vect_coord_distance = map( pow2, vect_coord_distance )
scalar_distance = math.sqrt( sum( list( vect_coord_distance ) ) )
return scalar_distance
NUMTRIALS = 1000
coord1 = tuple(random.randint(0, 100) for _ in range(3))
coord2 = tuple(random.randint(0, 100) for _ in range(3))
times = np.zeros(NUMTRIALS)
for i in range(NUMTRIALS):
stime = time.time()
distance(coord1, coord2)
times[i] = time.time() - stime
times2 = np.zeros(NUMTRIALS)
for i in range(NUMTRIALS):
stime = time.time()
distance2(coord1, coord2)
times2[i] = time.time() - stime
print(f'My function average time: {times.mean()}')
print(f'Your function average time: {times2.mean()}')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment