Numpy first occurrence of value greater than existing value

I have a 1D array in numpy and I want to find the position of the index where a value exceeds the value in numpy array.

E.g.

    aa = range(-10,10)

Find position in aa where, the value 5 gets exceeded.

This is a little faster (and looks nicer)

    np.argmax(aa>5)

Since argmax will stop at the first True ("In case of multiple occurrences of the maximum values, the indices corresponding to the first occurrence are returned.") and doesn't save another list.

    In [2]: N = 10000

    In [3]: aa = np.arange(-N,N)

    In [4]: timeit np.argmax(aa>N/2)
    100000 loops, best of 3: 52.3 us per loop

    In [5]: timeit np.where(aa>N/2)[0][0]
    10000 loops, best of 3: 141 us per loop

    In [6]: timeit np.nonzero(aa>N/2)[0][0]
    10000 loops, best of 3: 142 us per loop

From: stackoverflow.com/q/16243955

Back to homepage or read more recommendations: