[Numpy-discussion] distance matrix speed (original) (raw)
Johannes Loehnert a.u.r.e.l.i.a.n at gmx.net
Fri Jun 16 02:28:18 EDT 2006
- Previous message (by thread): [Numpy-discussion] distance matrix speed
- Next message (by thread): [Numpy-discussion] distance matrix speed
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
def dtest(): A = random( [4,2]) B = random( [1000,2])
# drawback: memory usage temporarily doubled
# solution see below
d = A[:, newaxis, :] - B[newaxis, :, :]
# written as 3 expressions for more clarity
d = sqrt((d**2).sum(axis=2))
return d
def dtest_lowmem(): A = random( [4,2]) B = random( [1000,2])
d = zeros([4, 1000], dtype='f') # stores result
for i in range(len(A)):
# the loop should not impose much loss in speed
dtemp = A[i, newaxis, :] - B[:, :]
dtemp = sqrt((dtemp**2).sum(axis=1))
d[i] = dtemp
return d
(both functions untested....)
HTH, Johannes
- Previous message (by thread): [Numpy-discussion] distance matrix speed
- Next message (by thread): [Numpy-discussion] distance matrix speed
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]