Aunque puedo hacer calculos similares y mostrarselos!!! Saludos
2014-04-06 17:56 GMT-05:00 AGTUGO <[email protected]>: > Sí solamente estoy buscando la solucion mas transparente (sin tanto paso > intermedio) en mi caso con el float 16 debe ser suficiente, guardar los > arrays en ficheros es lo mas tentador. Generalmente no pruebo con > diferentes listas, generando unas 15 listas y guardarlas en disco deberia > ser suficiente para el resto de mis simulaciones. No puedo poner los > calculos intermedios porque son información propietaria de una compañia :(. > > > 2014-04-06 16:49 GMT-05:00 Kiko <[email protected]>: > > >> >> >> El 6 de abril de 2014, 23:24, AGTUGO <[email protected]> escribió: >> >> Hola a todos, >>> hace mucho que no les escribía pero los leo de hace unos añitos, >>> >>> Tratando de correr el codigo siguiente me sale MemoryError: cuando uso >>> valores de 5e7 o mas de sample size. Estoy generando dos listas de numeros >>> aleatorios despues, veo si cumplen una condicion y los que cumplen los >>> sumo. Es el clasico programa tratando de calcular pi usando monte-carlo. >>> ¿Alguien sabe como hacerle para poder usar samples mas grandes sin que >>> ipython llore? >>> >>> >> Si el 'sample size' son 5e7 estás usando casi 400Mb por cada array >> creado. >> >> Soluciones: >> >> -Comprando más RAM :-P >> >> -si estás haciendo simulaciones MonteCarlo, ¿para qué quieres esos arrays >> tan grandes en memoria? Puedes usar arrays más pequeños y hacerlo por >> partes. >> >> -np.random.uniform crea arrays con float64 (8 bytes), podrías crearlos de >> float16 si es suficiente (divides la memoria usada por 4). Ejemplo, >> >> x = np.random.uniform(0,1,size_sample).astype(np.float16) >> >> -Dependiendo de como hagas las operaciones (no las muestras) puedes estar >> creandos arrays intermedios temporales que ocupen tanto como las matrices >> que estás creando y, por tanto, usando más memoria de la necesaria. >> >> -puedes guardar los arrays en ficheros y usar memmap >> >> -puedes usar pytables >> >> -Otras soluciones que ahora no se me ocurren. >> >> import numpy as np >>> from pylab import plot,show,axis >>> >>> size_sample = 1e7 >>> x = np.random.uniform(0,1,size_sample) >>> y = np.random.uniform(0,1,size_sample) >>> >>> >>> >>> >>> -- >>> Arturo Muñoz >>> >>> _______________________________________________ >>> Python-es mailing list >>> [email protected] >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> _______________________________________________ >> Python-es mailing list >> [email protected] >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Arturo Muñoz Tolosa > -- Arturo Muñoz Tolosa
_______________________________________________ Python-es mailing list [email protected] https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
