擅长:python、mysql、java
<p>以下是仅使用numpy的粗略开始:</p>
<pre><code>idx = abs(z1 - z2[:, None]) < threshold
idx1 = idx.any(0)
idx2 = idx.any(1)
</code></pre>
<p><code>idx1</code>和<code>idx2</code>可以用来获取相关的行,例如<code>y1[idx1]</code>、<code>y2[idx2]</code>等</p>
<p>代码的工作原理是对<code>z1</code>、<code>z2</code>中的所有元素进行两两比较,然后找到其中一个比较小于阈值的任何元素。<br/>
对于一个大数据集,Rory的答案会更快,并且占用更少的内存,因为它只在需要的地方计算比较。对于较小的数据集(如给定的数据集),消除循环的加速应该是相当大的。你知道吗</p>