El día 7 de agosto de 2013 13:22, Kiko <kikocorre...@gmail.com> escribió: > 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).
Estas herramientas las tenía como "pendientes" de revisar. Pandas lo había dejado para después de conocer mejor R, pero veo que me tendré que poner con ello ya. Pytable+hdf5 lo tenía más asociado con datos masivos "jerarquizados". Igual estoy equivocado. Numexpr (y/o numba) también los tengo pendientes. CArray no lo conocía, aunque parece relacionado con los anteriores. ¿Podría numexpr mejorar los resultados de numba que ha puesto Daπid? Todavía estoy trabajando en los modelos y me queda aún bastante margen para pulir antes de ponerme con la optimización de cálculos y requisitos de memoria. De momento solo busco una solución (relativamente) genérica que sea escalable. > Lo siento, estoy alejado de un pc en condiciones para hacer las > pruebas yo mismo y no decir lo primero que se me ocurre ;-) Siempre es de agredecer cualquier aporte. > p.d.: Perdón por el top-posting > > El 07/08/13, Chema Cortes <pych...@gmail.com> escribió: >> El día 7 de agosto de 2013 04:05, Asdrúbal Iván Suárez Rivera >> <asdrubal.ivan.suarez.riv...@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@python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ -- 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@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/