擅长:python、mysql、java
<p>我终于自己找到了。将压缩距离数组中的索引<code>k</code>转换为平方距离数组中的等价<code>i,j</code>的函数为:</p>
<pre><code>def condensed_to_pair_indices(n,k):
x = n-(4.*n**2-4*n-8*k+1)**.5/2-.5
i = x.astype(int)
j = k+i*(i+3-2*n)/2+1
return i,j
</code></pre>
<p>我不得不和<code>sympy</code>玩了一会儿才能找到它。现在,要计算相距小于给定距离的所有点对:</p>
^{pr2}$
<p>正如预期的那样,它比其他方法更有效(但是我没有测试<a href="https://stackoverflow.com/a/21286036/1206998">ckdtree</a>)。我将更新<a href="https://stackoverflow.com/a/21288792/1206998">timeit</a>答案。在</p>