> Are you sure about this? I ran this case using timeit, and the first one > was 5 times or so *faster* than the second case. I just dug around and > frompyfunc is acutally implemented in C, although it has to call back > into python to execute the function being vectorized. Can you try using > timeit instead of profile and see what you get? For example: > > a = np.cumprod(1 + np.random.normal(size=10000)/10) > > if __name__ == '__main__': > from timeit import Timer > print Timer('expmave1(a, .5)', 'from scratch import np, > expmave1, a').timeit(10) > print Timer('expmave2(a, .5)', 'from scratch import np, > expmave2, a').timeit(10) > > Anyway, I'm glad that all was helpful. > > -tim > > -tim >
wow, you're right. Good call. profile and timeit give conflicting results (and indeed, the timeit results are more accurate, I made a manual timer to test and compared). I'll have to be more careful using profile in the future. So that's pretty awesome then, a 5 times speed up using frompyfunc and accumulate vs the brute force way of doing it. And I think the code looks a little nicer too which is always nice. Definitely a technique I will be using in the future. - Matt _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion