【发布时间】:2011-08-21 12:09:38
【问题描述】:
我有一组 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')`
提前谢谢
【问题讨论】:
标签: python dictionary for-loop numpy eval