您可以通过迭代字典中的每个项目来做到这一点,但是在大型数据集中它可能效率低下。def get_key(data, query): for key, value in data.items(): if query in value[0][1]: return key return 'Not Found'get_key(dictonary, word)然后,即使您的查找未能找到匹配项,您也可以调用您的函数并返回结果。# Note i changed the name of the dictionary to dicton, as dict shouldn't be used as a variable nameprint(get_key(dicton, 'three'))print(get_key(dicton, 'seven'))print(get_key(dicton, 'four'))#a#Not Found#b我有一些 0.2 度和 1 度分辨率的虚拟数据。我想对 foo 进行二次采样,使其与 foo1 的比例相同。有什么简单的方法可以以某种方式平均和重新排列我的经纬度坐标吗?import pandas as pdimport xarray as xrimport matplotlib.pyplot as plt#Set at 0.2 degree grids ishfreq=20lats=240lons=1020time=pd.date_range('2000-01',periods=freq,freq='Y')data=np.random.rand(freq,lats,lons)lat=np.linspace(-19.5,19.5,lats)lon=np.linspace(120,290,lons)foo = xr.DataArray(data, coords=[time, lat,lon], dims=['time', 'lat','lon'])foo.sel(time='2005',method='nearest').plot()plt.show()#Set at 1 degree gridsfreq1=20lats1=40 #Factor of 6 differencelons1=170time1=pd.date_range('2000-01',periods=freq1,freq='Y')data1=np.random.rand(freq1,lats1,lons1)lat1=np.linspace(-19.5,19.5,lats1)lon1=np.linspace(120,290,lons1)foo1 = xr.DataArray(data1, coords=[time1, lat1,lon1], dims=['time', 'lat','lon'])foo1.sel(time='2005',method='nearest').plot()plt.show()
2 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
我决定最简单的方法是使用 foo1 网格进行解释。
因此:
foo2=foo.interp(lat=lat1).interp(lon=lon1)
foo2.sel(time='2005',method='nearest').plot()
应生成准确的子采样网格图。
添加回答
举报
0/150
提交
取消