Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import time
- import _numpypy
- import numpy as np
- from itertools import izip
- from itertools import combinations_with_replacement
- def main():
- #data = get_data(nparr=True)
- data = get_data(nparr=False)
- v1 = data[-1]
- func = std_sum
- #func = np_sum
- #func = lmd_sum
- #func = so_sum
- testcases = combinations_with_replacement(data[0:5000], 2)
- t0 = time.time()
- for (v1,v2) in testcases:
- func(v1, v2)
- t1 = time.time()
- print t1-t0
- def std_sum(v1, v2):
- distance = 0.0
- for (a,b) in izip(v1, v2):
- distance += math.fabs(a-b)
- return distance
- lzi = lambda v1, v2: reduce(lambda s, (a,b):s + math.fabs(a-b), izip(v1, v2), 0)
- def lmd_sum(v1, v2):
- return lzi(v1, v2)
- def np_sum(v1, v2):
- return np.sum(np.abs(v1-v2))
- def so_sum(v1, v2):
- np.sum(abs(a-b) for a, b in izip(v1, v2))
- def get_data(filename="data/perfdata", nparr=False):
- f = open(filename)
- contents = f.read().splitlines()
- data = []
- for line in contents:
- arr = [float(d) for d in line.split(',') ]
- if nparr:
- data.append(np.array(arr))
- else:
- data.append(arr)
- return data
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment