擅长:python、mysql、java
<p>总结一下:去掉对<code>int</code>和<code>len</code>的所有调用;去掉0的乘法;高效地生成原始数组。你知道吗</p>
<pre><code>def availarray(lengths):
out = np.ones((365, lengths.size))
for i in range(lengths.size):
out[:lengths[i], i] = 0
return out
</code></pre>
<p>这将执行时间从49 mks缩短到31.7 mks。你知道吗</p>
<p>从零数组开始,用1填充,效果更好:</p>
<pre><code>def availarray(lengths):
out = np.zeros((365, lengths.size))
for i in range(lengths.size):
out[lengths[i]:, i] = 1
return out
</code></pre>
<p>在我的例子中,这进一步将执行时间减少到26.3 mks,提高了46%。你知道吗</p>