>> As before, the line below does what you said you need, though not
>> maximally efficiently. (Try it in an interpreter...) There may be
>> another way in numpy that doesn't rely on constructing the index
>> array, but this is the first thing that came to mind.
>>
>> last_greater = numpy.arange(arr.shape)[arr >= T][-1]
>>
>> Let's unpack that dense line a bit:
>>
>> mask = arr >= T
>> indices = numpy.arange(arr.shape)
>> above_threshold_indices = indices[mask]
>> last_above_threshold_index = above_threshold_indices[-1]
>>
>> Does this make sense?
>
> This assumes monotonicity. Is that allowed?

The twice-stated problem was:

> In a 1-d array, find the first point where all subsequent points  
> have values less than a threshold, T.

So that should do the trick... Though Alan's argmax solution is  
definitely a better one than indexing an indices array. Same logic and  
result though, just more compact.
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to