擅长:python、mysql、java
<p>我没有看全部内容,但给你一个例子,说明如何使用向量计算优化函数:</p>
<pre><code>def maxdist_opti(x_i,x_j):
return max(abs(x_i-x_j))
</code></pre>
<p>当您的数据存储到numpy数组中时,您可以在它们上使用numpy操作符(有很多操作符,您可以在这里查看:<a href="https://docs.scipy.org/doc/numpy-1.13.0/user/index.html" rel="nofollow noreferrer">https://docs.scipy.org/doc/numpy-1.13.0/user/index.html</a>),这样会更快,在上面的例子中,我在numpy数组上使用了soustraction和<code>np.max</code>函数。你知道吗</p>
<p>这里,使用随机数据:</p>
<pre><code>x_i = np.random.rand(10000)
x_j = np.random.rand(10000)
</code></pre>
<p>这里使用的数据并不长,但是您可以看到非常好的性能提升:</p>
<pre><code>%timeit _maxdist(x_i,x_j)
100 loops, best of 3: 3.01 ms per loop
%timeit maxdist_opti(x_i,x_j)
10000 loops, best of 3: 28 µs per loop
</code></pre>
<p>您可以使用下面的逻辑只对整个公式进行向量计算,性能上的增益将是巨大的。你知道吗</p>
<p>请注意,数据越长,使用向量计算的优化程度就越高。你知道吗</p>