[Numpy-discussion] Distance Matrix speed

Alan G Isaac aisaac at american.edu
Sun Jun 18 22:05:51 EDT 2006


On Sun, 18 Jun 2006, Sebastian Beca apparently wrote: 
> def dist():
> d = zeros([N, C], dtype=float)
> if N < C: for i in range(N):
>  xy = A[i] - B d[i,:] = sqrt(sum(xy**2, axis=1))
>  return d
> else:
>  for j in range(C):
>  xy = A - B[j] d[:,j] = sqrt(sum(xy**2, axis=1))
> return d 


But that is 50% slower than Johannes's version:

def dist_loehner1():
        d = A[:, newaxis, :] - B[newaxis, :, :]
        d = sqrt((d**2).sum(axis=2))
	return d

Cheers,
Alan Isaac







More information about the NumPy-Discussion mailing list