Nikolaus Rath wrote: > Hello, > > I want to find the first i such that x[i] < y and x[i+1] >= y. Is there > a way to do this without using a Python loop? > > I can't use np.searchsorted(), because my x array crosses y several > times. > > > Best, > > -Nikolaus > >
Here's one way: In [32]: x Out[32]: array([10, 3, 2, 5, 8, 7, 6, 5, 4, 7, 11]) In [33]: y = 4.1 In [34]: np.where((x[:-1] < y) & (x[1:] > y))[0][0] Out[34]: 2 In [35]: y = 9.5 In [36]: np.where((x[:-1] < y) & (x[1:] > y))[0][0] Out[36]: 9 (The second index [0] assumes that at least one such point is found.) Warren _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion