No conocía openBUGS. Ya nos contarás (si puedes y quieres) lo que te traes entre manos, que seguro que aprenderemos todos!!!
El 07/08/13, Chema Cortes <pych...@gmail.com> escribió: > El día 7 de agosto de 2013 17:56, Kiko <kikocorre...@gmail.com> escribió: > >> pandas está muy 'cythonizado' por lo que para muchas operaciones >> debería ser muy buena opción. Su funcionamiento pretende emular parte >> de la funcionalidad de R (dataframes). > > Sí, ya me doy cuenta que todo va moviéndose muy rápido. De momento > quiero centrarme en R y OpenBUGS (inferencia bayesiana), pero tengo a > pandas y scikit-learn en espera. > >> Si trabajas con información muy 'grande' que no entra en memoria una >> buena opción es pytables ya que el acceso a los datos es muy rápido. >> Si te entra todo en memoria quizá no es necesario que lo pruebes >> ahora. > > De momento, no paso de 5 ó 6 GB. que es aún manejable. Procuro que las > operaciones no aumenten el gasto de memoria, pero preveo pasar a otras > estrategias como el cálculo distribuido. > >> Gente que andaba desarrollando numexpr (Francesc) ahora están metidos >> en continuum que son los desarrolladores de numba, blaze,... Numexpr >> es un jit de un subconjunto limitado de operaciones. Numba quizá sea >> algo más generalista y es realmente brillante cuando hay que meterse >> en bucles y la vectorización de numpy no ayuda del todo >> (http://jakevdp.github.io/blog/2013/06/15/numba-vs-cython-take-2/). > > Sigo bastante de cerca la labor de Francesc, Travis Oliphant y el > resto del equipo de continuum. LLVM (usado por numba) está entre las > "estrategias" de cálculo distribuido consideradas, aunque no descarto > soluciones del estilo hadoop. > > >> >> Saludos. >> >> El 07/08/13, Chema Cortes <pych...@gmail.com> escribió: >>> El día 7 de agosto de 2013 14:30, Kiko <kikocorre...@gmail.com> escribió: >>> >>>> mira también rot90, fliplr, flipud... >>>> >>>> http://docs.scipy.org/doc/numpy/reference/routines.array-manipulation.html#rearranging-elements >>> >>> Los había mirado, pero son funciones para >= 2-d. No veo cómo usarlas >>> con listas unidimensionales. >>> >>> >>>> >>>> El 07/08/13, Chema Cortes <pych...@gmail.com> escribió: >>>>> El día 6 de agosto de 2013 16:38, Daπid <davidmen...@gmail.com> >>>>> escribió: >>>>>> 2013/8/6 Chema Cortes <pych...@gmail.com>: >>>>> >>>>>> 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 >>>>> >>>>> He mirado un poco mejor el funcionamiento de los arrays en numpy. Los >>>>> troceos no crean nuevos arrays, sino lo que llama "vistas" ("views") >>>>> (a excepción de los "fancy indexing" de numpy). Como las vistas están >>>>> enlazadas con el objeto original, los cambios en una vista se efectúan >>>>> directamente sobre el objeto original de forma eficiente. >>>>> >>>>> Creo que usaré los arrays de numpy para operaciones con listas >>>>> grandes. También necesitaba hacer rotar la lista, cosa que veo que >>>>> puede hacer con np.roll, aunque no es tan eficiente como deque >>>>> .rotate() que realiza la operación "in-place". >>>>> >>>>> Como curiosidad, había descartado algunas pruebas bizarras con deque, >>>>> pero muestra lo increiblemente rápido que puede llegar a ser: >>>>> >>>>> d=deque(l) >>>>> >>>>> %timeit d.rotate(-i-1);d.extendleft([d.popleft() for _ in >>>>> range(j-i)]);d.rotate(i+1) >>>>> 10 loops, best of 3: 29.8 ms per loop >>>>> >>>>> Es la misma operación que l[i+1:j+1]=l2[j:i:-1], primero rotando la >>>>> lista hacia la izquierda, añadiendo la lista invertida al principio y >>>>> volviendo a rotar hacia la derecha para mantener el mismo orden. >>>>> >>>>> >>>>> -- >>>>> 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/ >>> >> _______________________________________________ >> 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/ > _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/