Alan G Isaac wrote: >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 > > Are you sure about that? I just ran it through timeit, using Sebastian's array sizes and I get Sebastian's version being 150% *faster*. This could well be cache size dependant, so may vary from box to box, but I'd expect Sebastian's current version to scale better in general.
-tim _______________________________________________ Numpy-discussion mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/numpy-discussion
