擅长:python、mysql、java
<p><a href="https://github.com/scipy/scipy/blob/v0.15.1/scipy/spatial/distance.py#L267" rel="nofollow">^{<cd1>}</a>,正如您在下面的链接中看到的,它在计算中引入了一个重要的开销,因为对于每个调用,它都会根据样本的大小计算您在每次调用时分析的两个向量的范数
这相当于计算了2000万个范数,如果你提前记住了你大约10万个向量的范数,你可以节省大约60%的计算时间,因为你有一个点积,u*v,和两个范数计算,这三个运算在运算数上大致相等。在</p>
<p>此外,你使用显式循环,如果你能把你的逻辑放在一个向量化的<code>numpy</code>操作符中,你就可以再削减一大块计算时间。在</p>
<p>最后,你会谈到余弦相似性。。。假设<code>scipy.spatial.distance.cosine</code>计算的是<em>余弦距离</em>,关系很简单,<code>cs = cd - 1</code>但我在您发布的代码中没有看到这一点。在</p>