我是IDL的Python的新手,并且习惯于索引我所有的循环,因此我试图了解python的工作方式。我有2个数据集(并列和KMCM),一个在细网格上,一个在粗网格上。每个数据集有4个维度[时间,高度,纬度,经度]。我想将精细网格化的数据插值到粗糙网格,以便能够将两者结合起来。现在,我有几个for循环可以做到这一点,但是我确信必须有一种不使用这些循环和调用索引的python方式来做到这一点。这也很慢。我该怎么办?
这是我当前的代码。
idt=10
profileT = np.zeros((nZ,nlat,nlon))
for lon in tie_lon:
idx = KMCM_lon.tolist().index(min(KMCM_lon, key=lambda x:abs(x-lon)))
for lat in tie_lat:
idy = KMCM_lat.tolist().index(min(KMCM_lat, key=lambda x:abs(x-lat)))
x = KMCM_Z[idt,:,idy,idx]
y = resid_T[idt,:,idy,idx]
xvals = tie_Z[idt,:,tie_lat.tolist().index(lat),tie_lon.tolist().index(lon)]
fT_KMCM = interp1d(x,y,kind='linear',fill_value = 1.0, bounds_error=False)
profileT[:,tie_lat.tolist().index(lat),tie_lon.tolist().index(lon)] = fT_KMCM(xvals)