Python 基于索引的Xarray条件子集集
假设我有一个Python 基于索引的Xarray条件子集集,python,python-xarray,Python,Python Xarray,假设我有一个xr.DataArraya,包含一些随机数据的三维(time,lon,lat)。现在我有了第二个xr.DataArrayB,它有两个维度(lon,lat),具有与a相同的网格。B的值表示基于整数的time索引A 如何根据B中的整数值对A进行子集划分 也就是说,我想得到A的值,其中time坐标的整数索引等于B的值 MWE 将numpy作为np导入 作为pd进口熊猫 将xarray作为xr导入 A=xr.DataArray(np.random.randn(10,5,5), dims=[
xr.DataArray
a,包含一些随机数据的三维(time
,lon
,lat
)。现在我有了第二个xr.DataArray
B,它有两个维度(lon
,lat
),具有与a相同的网格。B的值表示基于整数的time
索引A
如何根据B中的整数值对A进行子集划分
也就是说,我想得到A的值,其中time
坐标的整数索引等于B的值
MWE
将numpy作为np导入
作为pd进口熊猫
将xarray作为xr导入
A=xr.DataArray(np.random.randn(10,5,5),
dims=['time'、'lon'、'lat'],
坐标={'time':pd.日期范围(“2000-01-01”,句点=10),
“lon”:np.arange(1,6),
“lat”:名词arange(1,6)
}
)
B=xr.DataArray(np.random.randint(0,9,(5,5)),
dims=['lon','lat'],
coords={'lon':np.arange(1,6),
“lat”:名词arange(1,6)
}
)
感谢您提供了清晰的示例
IIUC,您想使用B
中的值来选择A
的时间坐标索引:
[9]中的:A.isel(time=B)
出[9]:
阵列([[1.01208355,1.29773366,0.53875951,2.45590211,0.49782187],
[-1.25561793, 1.00070962, 1.39388746, -0.88571071, -0.58113385],
[ 1.21686752, -1.71612589, 0.08652589, 0.12663398, 0.4425077 ],
[ 1.65911561, -0.41454701, -0.69167209, 0.59707559, 0.64610678],
[ 0.7255797 , 1.27375691, -0.10813576, -0.94236789, 1.53208474]])
协调:
时间(经纬度)日期时间64[ns]2000-01-01 2000-01-04。。。2000-01-08
*lon(lon)int64 1 2 3 4 5
*lat(lat)int64 1 2 3 4 5
就这么简单,xarray
真的很棒。只是一个后续问题:有没有一种方法可以屏蔽(例如,作为np.nan
)该特定索引的所有值?我也是xarray的初学者,但可能a.where
是您需要的。话虽如此,我还是无法让它工作