[Numpy-discussion] how to do this efficiently?

Neal Becker ndbecker2 at gmail.com
Wed Feb 9 10:58:03 EST 2011


Zachary Pincus wrote:

>>>> 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.

But where is numpy's 'find_first' function?  I can't seem to find it so I had to 
make my own in C++.





More information about the NumPy-Discussion mailing list