diff options
Diffstat (limited to 'numpy/lib/function_base.py')
-rw-r--r-- | numpy/lib/function_base.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py index 8681bc9b9..6e44bc205 100644 --- a/numpy/lib/function_base.py +++ b/numpy/lib/function_base.py @@ -93,7 +93,11 @@ def histogram(a, bins=10, range=None, normed=False): mx += 0.5 bins = linspace(mn, mx, bins, endpoint=False) - n = sort(a).searchsorted(bins) + # best block size probably depends on processor cache size + block = 65536 + n = sort(a[:block]).searchsorted(bins) + for i in xrange(block, a.size, block): + n += sort(a[i:i+block]).searchsorted(bins) n = concatenate([n, [len(a)]]) n = n[1:]-n[:-1] |