[Python-es] Eficiencia de las listas

Kiko kikocorreoso en gmail.com
Mie Ago 7 13:22:09 CEST 2013


pandas está muy optimizado (cython) para manejar datos

pytables + hdf5 quizá podría ser una opción?

numexpr para la operación de invertir la lista?

carray creo que no sería una opción para este caso (
https://pypi.python.org/pypi/carray/0.5.1).

Lo siento, estoy alejado de un pc en condiciones para hacer las
pruebas yo mismo y no decir lo primero que se me ocurre ;-)

p.d.: Perdón por el top-posting

El 07/08/13, Chema Cortes <pych3m4 en gmail.com> escribió:
> El día 7 de agosto de 2013 04:05, Asdrúbal Iván Suárez Rivera
> <asdrubal.ivan.suarez.rivera en gmail.com> escribió:
>> Saludos gente, sería interesante probar con blist[0]. A primera vista
>> pareciera bastante rápida.
>>
>> [0] https://pypi.python.org/pypi/blist/
>
> Tiene buena pinta, aunque la he probado y no mejora mi caso
> particular. Mejora el tema de trocear listas grandes, parece que no lo
> hace tan bien cuando se trata de invertir listas. Supongo que es
> debido a tener que mantener el B+tree actualizado.
>
> Pongo tiempos con blist, ndarray y list, respectivamente:
>
> %timeit b[i+1:j+1]=b[j:i:-1]
> 1 loops, best of 3: 144 ms per loop
>
> %timeit l[i+1:j+1]=l[j:i:-1]
> 100 loops, best of 3: 10.5 ms per loop
>
> %timeit L[i+1:j+1]=L[j:i:-1]
> 10 loops, best of 3: 53.8 ms per loop
>
> Si miramos sólo la inversión, (ndarray no tiene inversión "in-place"):
>
> %timeit b.reverse()
> 100 loops, best of 3: 9.04 ms per loop
>
> %timeit L.reverse()
> 100 loops, best of 3: 5.76 ms per loop
>
> Para otras operaciones, blist funciona algo mejor:
>
> %timeit -n100 del b[1000:10002]
> 100 loops, best of 3: 1.54 ms per loop
>
> %timeit -n100 del L[1000:10002]
> 100 loops, best of 3: 2.13 ms per loop
>
>
> --
> Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
> http://ch3m4.org/blog
> Buscador Python Hispano: http://ch3m4.org/python-es
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>


Más información sobre la lista de distribución Python-es