擅长:python、mysql、java
<p>虽然我完全同意前面的答案,即您应该使用标准的直方图算法,但很容易大大加快您自己的实现。它的问题是你一遍又一遍地传递每个箱子的整个输入。只处理一次输入,然后只写入相关的bin,速度会快得多:</p>
<pre><code>def hist(arr):
nbins = 256
result = [0] * nbins # or np.zeroes(nbins)
for y in arr:
if y>=0 and y<nbins:
result[y] += 1
return result
</code></pre>