【发布时间】:2019-10-20 11:12:14
【问题描述】:
我目前正在处理一些天气数据,这些数据是 netcdf 文件,我可以使用 pythons xarray 库轻松读取这些数据
我现在想获得具有 3 个维度(经度、纬度和时间)的 DataArray 的 n 个最小值
当我有一个 DataArray 博士时,我可以做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 减少到各自的最小值?
【问题讨论】:
标签: python-3.x multidimensional-array netcdf python-xarray