From: Anthony S. <sc...@gm...> - 2012-08-15 21:48:12
|
On Wed, Aug 15, 2012 at 12:33 PM, Adam Dershowitz <ade...@ex...>wrote: > I am trying to find all cases where a value transitions above a > threshold. So, my code first does a getwherelist to find values that are > above the threshold, then it uses that list to find immediately prior > values that are below. The code is working, but the second part, searching > through just a smaller subset is much slower (First search is on the order > of 1 second, while the second is a minute). > Is there any way to get this second part of the search in-kernal? Or any > more general way to do a search for values above a threshold, where the > prior value is below? > Essentially, what I am looking for is a way to speed up that second search > for "all rows in a prior defined list, where a condition is applied to the > table" > > My table is just seconds and values, in chronological order. > > Here is the code that I am using now: > > h5data = tb.openFile("AllData.h5","r") > table1 = h5data.root.table1 > > #Find all values above threshold: > thelist= table1.getWhereList("""Value > 150""") > > #From the above list find all values where the immediately prior value > is below: > transition=[] > for i in thelist: > if (table1[i-1]['Value'] < 150) and (i != 0) : > transition.append(i) > Hey Adam, Sorry for taking a while to respond. Assuming you don't mind one of these being <= or >=, you don't really need the second loop with a little index arithmetic: import numpy as np inds = np.array(thelist) dinds = inds[1:] - inds[:-1] transition = dinds[(1 < dinds)] This should get you an array of all of the transition indices since wherever the difference in indices is greater than 1 the Value must have dropped below the threshold and then returned back up. Be Well Anthony > > Thanks, > > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Pytables-users mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pytables-users > > |