[Python-es] Almacenado de datos

José Sabater Montes jsm en iaa.es
Mar Feb 28 11:29:03 CET 2012


El 28/02/2012, a las 00:08, Daπid escribió:

> Hola:
> 
> Estoy haciendo unas simulaciones de Monte Carlo para estudiar la variación de un parámetro en función de otro u otros dos. En total, tengo del orden de mil o diez mil datos. ¿Cuál es la forma más sencilla de almacenarlos y recuperarlos?
> 
> Intentaré explicarme mejor con un ejemplo. Ahora mismo tengo un fichero de texto plano así:
> 
>   1000 0.363815214388
>   1000 0.359016260729
>   1151 0.38896507684
>   1151 0.388929158895
>   1151 0.388769658166
> 
> Donde la primera columna es N y la segunda, C. Quiero, por ejemplo, poder obtener la media de cada valor de C para cada N. Por supuesto, programarlo a mano es fácil, pero estoy seguro de que hay algo mejor.

Hola,

En cuatro líneas usando numpy:

# Importamos numpy:
import numpy

# Leemos los datos del "fichero" en un array llamado r
# Tener en cuenta que lee todo como float
r = numpy.loadtxt("fichero")

# Iteramos sobre los valores distintos de la primera columna
for C in numpy.unique(r[:,0]):
  # Pintamos el valor de la primera columna (pasándolo a entero) y
  # la media de los valores de la segunda columna para las filas 
  # correspondientes a dicho valor de la primera columna
  print int(C), r[:,1][r[:,0] == C].mean()

Un saludo,
Pepe


Más información sobre la lista de distribución Python-es