У меня есть набор словарей k
в форме {(i,j):NumPy.array}
, по которым я хочу зациклить NumPy.arrays для определенной оценки.
Я сделал следующие словари:
datarr = ['PowUse', 'PowHea', 'PowSol', 'Top']
for i in range(len(dat)): exec(datarr[i]+'={}')
так что я всегда могу изменить набор данных, которые я хочу оценивать в моем большем наборе кода, изменив исходный список строк. Тем не менее, это означает, что я должен вызвать свои словари как eval(k) for k in datarr
.
В результате цикл, который я хочу сделать, на данный момент выглядит следующим образом:
for i in filarr:
for j in buiarr:
for l in datarrdif:
a = eval(l)[(i, j)]
a[abs(a)<.01] = float('NaN')
eval(l).update({(i, j):a})
но есть ли намного более хороший способ написать это? Я попробовал следующее, но это не сработало:
[eval(l)[(i, j)][abs(eval(l)[(i, j)])<.01 for i in filarr for j in buiarr for k in datarrdiff] = float('NaN')`
Спасибо заранее