Saludos gente, sería interesante probar con blist[0]. A primera vista pareciera bastante rápida.
[0] https://pypi.python.org/pypi/blist/ El 6 de agosto de 2013 10:08, Daπid <davidmen...@gmail.com> escribió: > 2013/8/6 Chema Cortes <pych...@gmail.com>: > > Interesante caso usando numpy y numba. Pero el problema que veo es que > > la función flipper no debería tener fijados los parámetros de corte, > > lo que supongo que hará perder bastante eficacia al JIT de numba. > > En absoluto. Pasando i y j como argumentos a la función, se tienen los > mismos tiempos. Numba es más eficiente cuantos más números se estén > cambiando: > > > In [17]: %timeit flipper(l,10**2, 10**3) > 100000 loops, best of 3: 6.14 us per loop > > In [18]: %timeit nflipper(l,10**2, 10**3) > 100000 loops, best of 3: 5.8 us per loop > > In [19]: %timeit flipper(l,10**3, 10**5) > 1000 loops, best of 3: 351 us per loop > > In [20]: %timeit nflipper(l,10**3, 10**5) > 10000 loops, best of 3: 119 us per loop > > > He vuelto a medir los tiempos de NumPy sin función y ahora sí obtengo > resultados razonables: > > In [26]: %timeit l[i+1:j+1]=l[j:i:-1] > 1000 loops, best of 3: 351 us per loop > > (i y j son 10**3, 5 respectivamente). > > > Por completitud, usando la lista L=list(l) > > In [29]: %timeit L[i+1:j+1]=L[j:i:-1] > 100 loops, best of 3: 6.77 ms per loop > > > Por otro lado, si la operación de inversión no se hace sobre el array, > sino sobre una copia, se gana tiempo: > > In [31]: l2 = l.copy() > > In [32]: %timeit l[i+1:j+1]=l2[j:i:-1] > 10000 loops, best of 3: 101 us per loop > > > Pero claro, no estamos teniendo en cuenta la copia de l2 (15 ms) > (quizá útil si se va a repetir el mismo proceso sobre muchas secciones > no solapantes del array). > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Asdrúbal Iván Suárez Rivera *Si quieres aprender, enseña. *Marco Tulio Cicerón. * * *¿Tienes twitter?* *Sígueme: @asdrubalivan*
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/