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/