[Numpy-discussion] how to do this efficiently?

Zachary Pincus zachary.pincus@yale....
Wed Feb 9 09:38:49 CST 2011


>>> In a 1-d array, find the first point where all subsequent points
>>> have values
>>> less than a threshold, T.
>>
>> Maybe something like:
>>
>> last_greater = numpy.arange(arr.shape)[arr >= T][-1]
>> first_lower = last_greater + 1
>>
>> There's probably a better way to do it, without the arange, though...
>
> I'm trying to find the first point in a power spectrum such that all  
> subsequent
> points are below some level.  I've started with:
>
> db is my power spectrum in dB,   It is already reversed.
>
> mag = np.maximum.accumulate (db) - db[-1]
>
> Now all I need is to find the first point such that mag < -50.  How  
> to do this
> efficiently?

Right -- that's what I showed above. Find the last point in mag that  
is >= -50, and by definition the next point is the first point such  
that the remainder of mag is < -50.


More information about the NumPy-Discussion mailing list