擅长:python、mysql、java
<p>首先广播差异:</p>
<p><code>disp_vecs=tot_vec[:,None,:]-tot_vec[None,:,:]</code></p>
<p>现在,根据你的数据集有多大,你可能想做一个没有所有数学运算的第一次传递。如果距离小于<code>r</code>,则所有组件都应小于<code>r</code></p>
<p><code>first_mask=np.max(disp_vec, axis=-1)<r</code></p>
<p>然后进行实际计算</p>
<pre><code>disps=np.linlg.norm(disp_vec[first_mask],axis=-1)
second_mask=disps<r
</code></pre>
<p>现在重新分配</p>
^{pr2}$
<p><code>disps</code>现在是好值,<code>first_mask</code>是一个布尔掩码。你可以从那里处理。在</p>