Итак, у меня есть понимание, работающее, но Мне интересно, есть ли более быстрый способ сделать это, чем иметь отдельный цикл для каждого индекса.Python Loop
dR представляет собой целую кучу информации, загружаемой из файла netCDF, а dN готовится к использованию в качестве копии для интерполяции.
dN = { 'lev' : { i : dR['lev'][i] * 3.370079 for i in range(len(dR['lev'])) },
'wdi' : { i : dR['wdi'][i,::,1,1] for i in range(len(dR['tim'])) for o in range(len(dI['lev'])) },
'wsp' : { i : dR['wsp'][i,::,1,1] * 1.94384449 for i in range(len(dR['tim'])) for o in range(len(dI['lev'])) },
'u' : { i : dR['u'][i,::,1,1] * 1.94384449 for i in range(len(dR['tim'])) for o in range(len(dI['lev'])) },
'v' : { i : dR['v'][i,::,1,1] * 1.94384449 for i in range(len(dR['tim'])) for o in range(len(dI['lev'])) },
'tim' : dR['tim'][::3],
'lon' : dR['lon'][::].tolist(),
'lat' : dR['lat'][::].tolist()}
EDIT: Так что я положил кучу индексов вместе в цикле, как так:
dN = { 'lev' : dR['lev'][::] * 3.370079,
'wdi' : {},
'wsp' : {},
'u' : {},
'v' : {},
'tim' : dR['tim'][::3],
'lon' : dR['lon'][::].tolist(),
'lat' : dR['lat'][::].tolist()}
for i in range(len(dN['tim'])):
dN['lev'][i] = dR['lev'][i,::,1,1] * 3.370079
for o in range(len(dI['lev'])):
dN['wsp'][i] = dR['wsp'][i,::,1,1] * 1.94384449
dN['wdi'][i] = dR['wdi'][i,::,1,1] * 1.94384449
dN['u'][i] = dR['u'][i,::,1,1] * 1.94384449
dN['v'][i] = dR['v'][i,::,1,1] * 1.94384449
Но мне интересно, если есть еще более быстрый способ пойти об этом, я считаю, что это немного глупо, чтобы объявить каждый основной показатель, а затем вручную применить к ним после.
Каков ваш ожидаемый результат? –
Я получаю ожидаемый результат, я просто хочу знать, есть ли более быстрый способ делать то, что я делаю. – vcxo
Итак, мы должны сказать вам, как получить от ввода, который мы не знаем, к результату, который мы не знаем быстрее? –