[Numpy-discussion] "Match" two arrays
Neil Crighton
neilcrighton@gmail....
Thu Apr 1 04:45:48 CDT 2010
Shailendra <shailendra.vikas <at> gmail.com> writes:
>
> Hi All,
> I want to make a function which should be like this
> <code>
> cordinates1=(x1,y1) # x1 and y1 are x-cord and y-cord of a large
> number of points
> cordinates2=(x2,y2) # similar to condinates1
> indices1,indices2= match_cordinates(cordinates1,cordinates2)
> <code>
> (x1[indices1],y1[indices1]) "matches" (x2[indices2],y2[indices2])
>
> where definition of "match" is such that :
> If A is closest point to B and distance between A and B is less that
> delta than it is a "match".
> If A is closest point to B and distance between A and B is more that
> delta than there is no match.
> Every point has either 1 "match"(closest point) or none
>
> Also, the size of the cordinates1 and cordinates2 are quite large and
> "outer" should not be used. I can think of only C style code to
> achieve this. Can any one suggest pythonic way of doing this?
>
> Thanks,
> Shailendra
>
A similar problem comes up when you have to match astronomical coordinates. I
wrote a python + numpy function that is fast enough for my use cases - you might
be able to adapt it:
http://bitbucket.org/nhmc/pyserpens/src/tip/coord.py
The matching function starts on line 166.
Disclaimer: I haven't looked at the kdtree code yet, that might be a better
approach.
Neil
More information about the NumPy-Discussion
mailing list