[Numpy-discussion] how to do this efficiently?

Neal Becker ndbecker2 at gmail.com
Wed Feb 9 10:35:57 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?




More information about the NumPy-Discussion mailing list