I have a an array of indices into a larger array where some condition is satisfied. I want to create a larger set of indices which *mark* all the indicies following the condition over some Nmark length window. In code:
import numpy as np N = 1000 Nmark = 20 ind = np.nonzero(np.random.rand(N)<0.01)[0] marked = np.zeros(N, bool) for i in ind: marked[i:i+Nmark] = True I am going to have to do this over many arrays, and so I want to do it efficiently. Is there a way to do the above more efficiently, eg w/o the loop. In the real use case, there will be significant auto-correlation among the places where the condition is satisfied. Eg, if it is satisfied at some index, it is likely that it will be satisfied for many of its neighbors. Eg, the real case looks more like y = np.sin(2*np.pi*np.linspace(0, 2, N)) ind = np.nonzero(y>0.95)[0] marked2 = np.zeros(N, bool) for i in ind: marked2[i:i+Nmark] = True Thanks in advance for any hints, JDH _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion