Ver Mensaje Individual
  #9 (permalink)  
Antiguo 07/06/2014, 03:01
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema: Memory Error

Bien gracias.

Probá este código:

Código Python:
Ver original
  1. def findGoodPages(pathToTable, pages, rows, columns, possibleValues):
  2.    
  3.     with openFile(pathToTable, 'r') as f:
  4.        
  5.         tab = f.getNode("/previous")
  6.        
  7.        
  8.     #Lo que necesito hacer es recorrer toda la pytable y seleccionar ciertos campos
  9.     #pero unicamente de las rows que cumplan ciertas condiciones
  10.  
  11.     #primero convierto las listas a diccionarios, esto aumenta la eficiencia en las busquedas
  12.         dpages = dict((a, None) for a in pages
  13.         drows = dict((b, None) for b in rows
  14.         dcolumns = dict((c, None) for c in columns
  15.         dpossibleValues = dict((d, None) for d in possibleValues
  16.        
  17.     #aqui guardare lo que necesito
  18.         result = []
  19.        
  20.         t1 = time.time()
  21.     #dpossibleValues guarda 800 posibles valores de un total de mas de 1000
  22.  
  23.         for i in dpossibleValues:
  24.            
  25.            
  26.             aux = [row['is_ok'] for row in tab.where("(value == i)") if row['page'] in dpages and row['page_row'] in drows and row['page_col'] in dcolumns]
  27.             result.append([i,format(np.array(aux).mean(), '.2f'), format(np.array(aux).std(), '.2f')])
  28.            
  29.         #en cada paso del loop borro
  30.             del aux
  31.        
  32.         return result
  33.  
  34.  
  35. raw_input()

Yo siempre recomiendo otra distintas variables, no creo que solucione el problema, pero es un punto a tener en cuenta.

Una pregunta, porque no lees el archivo con open() ?

pegame aquí por favor un par de líneas de lo que contiene la PyTabla, quizás puedas usar otros métodos para la lectura de esa tabla.