El Martes, 6 de Marzo de 2012 a las 19:42,  Daπid escribió:
> Tras haber estado mirando los tutoriales de PyTables he visto que el
> lo único complicado con respecto a usar ASCII es
>
> fusionar las bases de datos, y estoy seguro de que hay alguna forma
> simple.
>
> A cambio, tiene varias ventajas:
>
>  - Algunos parámetros son función de otros. Puedo incluir algunos
> ahora, como una columna más, pero es posible que en el futuro me
> aparezcan otros. Igualmente, se puede hacer desde los ASCII, pero se
> vuelve más farragoso.
>  - Es más seguro referirse a un parámetro como x['N'] que x[0]. Podría
> usar un diccionario, pero sería complicarlo.
>  - Aprendo a usar DB.
>
> En definitiva, si logro solucionar la fusión, me iré por PyTables.

mmm lo tendré en cuenta. La verdad es que estuve en un tutorial de pytables 
y me pareció muy interesante, pero pensé que su principal utilidad era 
para cosas "grandes", es decir para muchos megas/gigas de datos, y con una 
estructura complicada, o donde sean importantes los metadatos (por ejemplo 
pensé en un colega que hace cosas de oceanografía y GIS)

Quiero decir que me dio la sensación (quizás equivocada) de que era en 
estos casos cuando compensaba meterse en ello. Pero puede que fuese debido 
a mi tipo específico de datos, y mi inercia de la tradición, acostumbrado 
a "tocarlos" directamente con  less, awk, gnuplot, etc.  Tendré que 
mirarlo de nuevo.

Estaría bien si cuentas tus experiencias al respecto ;-)

>
>
> Muchas gracias por Paralell Python, me será muy útil. Volveré por aquí
> con más problemas.

Para mi caso me vino de perlas, desde luego. En unos días tenía 
todo "paralelizado", y eso que se me presentó algún problemilla, pero 
debido sobre todo a que de fondo llamaba a unos códigos en fortran. Si 
hubiese sido todo en python en un día o dos listo. 

Iñigo


>
> 2012/3/5 Inigo Aldazabal Mensa <inigo_aldaza...@ehu.es>:
> > El Jueves, 1 de Marzo de 2012 a las 22:12,  Daπid escribió:
> >> He estado analizando las respuestas y repensando algunas cuestiones
> >> de base. En primer lugar, reespecificando el problema:
> >>
> >> -Por cada evento tengo que registrar unas tres o cuatro variables
> >> independientes (depende del tipo que sea), los parámetros que yo fijo
> >> al hacer la simulación: n, p, z.
> >>
> >> -En cada caso, guardaré cinco medidas de cada evento, los resultados
> >> de mi simulación: C, L, S, M, Mbarra.
> >>
> >> El total es la ristra (n, p, z, C, L, S, M, Mb)
> >>
> >> Mi objetivo es recuperar de la forma más sencilla posible, todos los
> >> valores de M para cada n fijado z (por ejemplo).
> >>
> >> Hacer esto en Numpy se me va a volver molesto porque el número de
> >> parámetros es más elevado.
> >
> > ¿Eso no se puede hacer fácil con máscaras? Aunque no se mucho de eso
> > la verdad:
> >
> > In [42]: a
> > Out[42]:
> > array([[ 0,  1,  2,  3],
> >       [ 4,  5,  6,  7],
> >       [ 8,  9, 10, 11],
> >       [ 4,  1,  1,  1]])
> >
> > In [43]: a[a[:,0]==4.,:]
> > Out[43]:
> > array([[4, 5, 6, 7],
> >       [4, 1, 1, 1]])
> >
> >> Además, he conseguido acceso a un grid de ordenadores en la
> >> universidad, lo que supone dos cambios:
> >>
> >> - El número de datos que voy a manejar va a ser mucho mayor. Quizá
> >> los ficheros de texto se vayan quedando fuera.
> >
> > Sigo pensando que no tendrás mucho problemas con ficheros por ejemplo
> > de decenas de megas.
> >
> >> - Dado que mi problema es embarazosamente paralelizable, voy a tener
> >> cuatro programas corriendo en el mismo ordenador, y una decena de
> >> ordenadores en total. Una de dos, o mi base de datos admite varios
> >> accesos de escritura a la vez (pyTables dice que no muy bien). La
> >> pregunta ahora es: ¿pueden ser fusionadas varias bases de datos
> >> fácilmente? Esto es algo que no he sabido encontrar en la
> >> documentación de ninguna de las opciones.
> >
> > Si lo vas a lanzar a un cluster o grid con ascii lo tienes chupado, al
> > menos tal como cuentas: cada proceso escribe su fichero (con su nombre
> > concreto distinto al resto, claro) y al terminar los trabajos
> > recopilas todos los ficheros que puedes pegar directamente. Si soy
> > pesado con esto es porque me parece que es la forma mas sencilla de
> > hacerlo, a no ser que sepas con seguridad que vas a tener
> > limitaciones. Puedes hacer pruebas generando archivos fictícios antes
> > de decidir.
> >
> > Si vas a lanzar los programas con cada core/proceso corriendo el monte
> > carlo con distintos parámetros, te puede ser útil el módulo Parallel
> > Python http://www.parallelpython.com/. Yo lo he usado precisamente
> > para cálculos así. Si haces que a tu programa de cálculo le puedas
> > pasar los parámetros por línea de comandos simplemente haces un bucle
> > sobre los parámetros que te interesen y Parallel Python los va
> > lanzando a medida que acaban, tipo sistema de colas. El programa que
> > ejecuta parallel pyhton llamando a tu propio programa lo puedes mandar
> > a colas sin problemas, y en este caso también es fácil recoger los
> > resultados si lo diriges directamente a stdout. Es mucho mas fácil que
> > tener que implementar tu todo con MPI por ejemplo.
> >
> > En su web hay ejemplos, y si te interesa te puedo pasar algo de lo que
> > hice.
> >
> > Iñigo
> >
> >> Nótese que del tema soy un absoluto desconocedor, así que no sé si lo
> >> que estoy pidiendo es demasiado o lo mínimo para una BD. Tampoco sé
> >> cómo se llaman las cosas que quiero hacer, así que me es difícil
> >> encontrar las palabras clave por las que buscar.
> >>
> >>
> >> Muchas gracias a todos.
> >> _______________________________________________
> >> 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/
>
> _______________________________________________
> 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/

Responder a