On Wed, May 2, 2012 at 7:25 PM, Aronne Merrelli <span dir="ltr"><<a href="mailto:aronne.merrelli@gmail.com" target="_blank">aronne.merrelli@gmail.com</a>></span> wrote:<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">In general this is a good suggestion - I was going to mention it</div></div>
earlier - but I think for this particular problem it is not better<br>
than the "brute force" and argmin() NumPy approach. On my laptop, the<br>
KDTree query is about a factor of 7 slower (ignoring the time cost to<br>
create the KDTree)<br>
<br></blockquote><div><br></div><div>The cKDTree implementation is more than 4 times faster than the brute-force approach:</div><div><br></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_quote">
<div><div><font face="'courier new', monospace">T = scipy.spatial.cKDTree(targets)</font></div></div></div><div class="gmail_quote"><div><font face="'courier new', monospace"><br></font></div></div><div class="gmail_quote">
<div><div><font face="'courier new', monospace">In [11]: %timeit foo1(element, targets)   # Brute force</font></div></div></div><div class="gmail_quote"><div><div><font face="'courier new', monospace">1000 loops, best of 3: 385 us per loop</font></div>
</div></div><div class="gmail_quote"><div><div><font face="'courier new', monospace"><br></font></div></div></div><div class="gmail_quote"><div><div><font face="'courier new', monospace">In [12]: %timeit foo2(element, T)         # cKDTree</font></div>
</div></div><div class="gmail_quote"><div><div><font face="'courier new', monospace">10000 loops, best of 3: 83.5 us per loop</font></div></div></div><div class="gmail_quote"><div><div><font face="'courier new', monospace"><br>
</font></div></div></div><div class="gmail_quote"><div><div><font face="'courier new', monospace">In [13]: 385/83.5</font></div></div></div><div class="gmail_quote"><div><div><font face="'courier new', monospace">Out[13]: 4.610778443113772</font></div>
</div></div></blockquote><div class="gmail_quote"><div><br></div><div>A FLANN implementation should be even faster--perhaps by as much as another factor of two.</div><div><br></div><div>-Kevin</div><div><br></div></div>