Bien gracias.
Probá este código:
Código Python:
Ver originaldef findGoodPages(pathToTable, pages, rows, columns, possibleValues):
with openFile(pathToTable, 'r') as f:
tab = f.getNode("/previous")
#Lo que necesito hacer es recorrer toda la pytable y seleccionar ciertos campos
#pero unicamente de las rows que cumplan ciertas condiciones
#primero convierto las listas a diccionarios, esto aumenta la eficiencia en las busquedas
dpages = dict((a, None) for a in pages
drows = dict((b, None) for b in rows
dcolumns = dict((c, None) for c in columns
dpossibleValues = dict((d, None) for d in possibleValues
#aqui guardare lo que necesito
result = []
t1 = time.time()
#dpossibleValues guarda 800 posibles valores de un total de mas de 1000
for i in dpossibleValues:
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]
result.append([i,format(np.array(aux).mean(), '.2f'), format(np.array(aux).std(), '.2f')])
#en cada paso del loop borro
del aux
return result
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.