Hi, On 01/10/2011 09:09 AM, EMMEL Thomas wrote: > > No I didn't, due to the fact that these values are coordinates in 3D (x,y,z). > In fact I work with a list/array/tuple of arrays with 100000 to 1M of > elements or more. > What I need to do is to calculate the distance of each of these elements > (coordinates) > to a given coordinate and filter for the nearest. > The brute force method would look like this: > > > #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > def bruteForceSearch(points, point): > > minpt = min([(vec2Norm(pt, point), pt, i) > for i, pt in enumerate(points)], key=itemgetter(0)) > return sqrt(minpt[0]), minpt[1], minpt[2] > > #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > def vec2Norm(pt1,pt2): > xDis = pt1[0]-pt2[0] > yDis = pt1[1]-pt2[1] > zDis = pt1[2]-pt2[2] > return xDis*xDis+yDis*yDis+zDis*zDis >
I am not sure I understood the problem properly but here what I would use to calculate a distance from horizontally stacked vectors (big): ref=numpy.array([0.1,0.2,0.3]) big=numpy.random.randn(1000000, 3) big=numpy.add(big,-ref) distsquared=numpy.sum(big**2, axis=1) Pascal _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion