我目前正在处理一些天气数据,这些数据作为netcdf文件,可以使用pythons xarray库轻松读取
我现在想获取具有3个维度(经度,纬度和时间)的DataArray的n个最小值
当我有一个DataArray dr时,我可以做dr.min()
,也许指定一个轴,然后得到最小值,但是当我也想获得第二个最小值甚至是可变数量的最小值时,似乎不变得简单
我目前正在做的是:
with xr.open_dataset(path) as ds:
dr = ds[selection]
dr = dr.values.reshape(dr.values.size)
dr.sort()
n_smallest = dr[0:n]
与我必须输入最小值的简单.min()
相比,这对我来说似乎有点复杂
实际上,我想将时间设置为与最小值对应的最小值:
dr.where(dr[selection] == dr[selection].min(), drop=True)[time].values
有没有更好的方法来获取n个最小值?甚至是获取n个最小值的时间的简单方法?
也许有一种方法可以将经度和纬度轴上的3D DataArray减小到各自的最小值?