zip, not w/ itertools
parent
c811d14ef7
commit
7d8e215c00
14
mymath.py
14
mymath.py
|
@ -6,16 +6,16 @@ import math, random, itertools
|
||||||
#generic distance metric stuff
|
#generic distance metric stuff
|
||||||
|
|
||||||
def manhattan_distance(p1, p2):
|
def manhattan_distance(p1, p2):
|
||||||
return sum(abs(x - y) for x, y in itertools.zip(p1, p2))
|
return sum(abs(x - y) for x, y in zip(p1, p2))
|
||||||
|
|
||||||
def euclidean_distance(p1, p2):
|
def euclidean_distance(p1, p2):
|
||||||
return math.sqrt(sum((x - y) ** 2 for x, y in itertools.zip(p1, p2)))
|
return math.sqrt(sum((x - y) ** 2 for x, y in zip(p1, p2)))
|
||||||
|
|
||||||
def squared_euclidean_distance(p1, p2):
|
def squared_euclidean_distance(p1, p2):
|
||||||
return sum((x - y) ** 2 for x, y in itertools.zip(p1, p2))
|
return sum((x - y) ** 2 for x, y in zip(p1, p2))
|
||||||
|
|
||||||
def chebyshev_distance(p1, p2):
|
def chebyshev_distance(p1, p2):
|
||||||
return max(abs(x - y) for x, y in itertools.zip(p1, p2))
|
return max(abs(x - y) for x, y in zip(p1, p2))
|
||||||
|
|
||||||
def reciprical_distance(p1, p2):
|
def reciprical_distance(p1, p2):
|
||||||
d = manhattan_distance(p1, p2)
|
d = manhattan_distance(p1, p2)
|
||||||
|
@ -37,16 +37,16 @@ def equal(p1, p2):
|
||||||
return manhattan_distance(p1, p2) == 0.0
|
return manhattan_distance(p1, p2) == 0.0
|
||||||
|
|
||||||
def add(p1, p2):
|
def add(p1, p2):
|
||||||
return tuple(x + y for x, y in itertools.zip(p1, p2))
|
return tuple(x + y for x, y in zip(p1, p2))
|
||||||
|
|
||||||
def sub(p1, p2):
|
def sub(p1, p2):
|
||||||
return tuple(x - y for x, y in itertools.zip(p1, p2))
|
return tuple(x - y for x, y in zip(p1, p2))
|
||||||
|
|
||||||
def scale(p, s):
|
def scale(p, s):
|
||||||
return tuple(x * s for x in p)
|
return tuple(x * s for x in p)
|
||||||
|
|
||||||
def dot(p1, p2):
|
def dot(p1, p2):
|
||||||
return sum(x * y for x, y in itertools.zip(p1, p2))
|
return sum(x * y for x, y in zip(p1, p2))
|
||||||
|
|
||||||
def length(p):
|
def length(p):
|
||||||
return math.sqrt(dot(p, p))
|
return math.sqrt(dot(p, p))
|
||||||
|
|
Loading…
Reference in New Issue