In [3]:
import random
import numpy as np
import bisect

a = [random.randrange(0, 1000) for i in range(5000)]
a.sort()

In [4]:
bisect.bisect_left(a, 200)


Out[4]:
980

In [5]:
np.searchsorted(a, 200)


Out[5]:
980

In [6]:
%timeit bisect.bisect_left(a, 200)
%timeit np.searchsorted(a, 200)


1000000 loops, best of 3: 554 ns per loop
1000 loops, best of 3: 456 µs per loop

In [7]:
b = np.asarray(a)

In [9]:
%timeit bisect.bisect_left(b, 200)
%timeit np.searchsorted(b, 200)


100000 loops, best of 3: 13.9 µs per loop
100000 loops, best of 3: 2.27 µs per loop

In [ ]: