擅长:python、mysql、java
<p>代码中最慢的一点是对列表的O(n)遍历:</p>
<pre><code>if array[i] in temps:
index, = np.where(temps==array[i])[0]
</code></pre>
<p>由于<code>temps</code>不大,可以将其转换为dict:</p>
^{pr2}$
<p>把它变成O(1):</p>
<pre><code>if array[i] in temps2:
index = temps2[array[i]]
</code></pre>
<p>您也可以尝试避免<code>for</code>循环来加快速度。例如,以下代码:</p>
<pre><code>for i in range(0,len(array)):
if array[i] != float(-9.99e+08):
array[i] = array[i] - 273.15
</code></pre>
<p>可以这样做:</p>
<pre><code>array[array!=float(-9.99e+08)] -= 273.15
</code></pre>
<p>代码中的另一个问题是浮点比较。不应该使用完全相等的运算符<code>==</code>或{<cd4>},尝试使用带公差的<code>numpy.isclose</code>,或者通过乘以100将float转换为int。在</p>