Aunque puedo hacer calculos similares y mostrarselos!!! Saludos

2014-04-06 17:56 GMT-05:00 AGTUGO <agt...@gmail.com>:

> 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 <kikocorre...@gmail.com>:
>
>
>>
>>
>> El 6 de abril de 2014, 23:24, AGTUGO <agt...@gmail.com> 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
>>> Python-es@python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es@python.org
>> 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
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Reply via email to