【问题标题】:get the date for xarray rolling min or max获取 xarray 滚动最小值或最大值的日期
【发布时间】:2020-09-13 23:17:53
【问题描述】:

调用 foo.rolling(time=100).mean() 将给出 100 天滚动周期的平均值。 我想在这 100 天内找到最小值和最大值。轻松使用foo.rolling(time=100).min()

但是,我怎样才能找到这个最小值和最大值的确切日期?我想知道在这个滚动的 100 天窗口中的最小和最大周期是什么日期。还是我需要编写自己的函数来执行此操作?

num=4000
data = np.random.rand(num, 3)
locs = ['one', 'two', 'three']
times = pd.date_range('2000-01-01', periods=num)
foo = xr.DataArray(data, coords=[times, locs], dims=['time', 'space'])

foo.rolling(time=100).max()
foo.rolling(time=100).min()

谢谢

【问题讨论】:

    标签: python numpy python-xarray


    【解决方案1】:

    一种方法是使用DataArrayRolling.construct 显式创建footime DataArrays 的窗口视图。例如。在argmin的情况下:

    windowed_foo = foo.rolling(time=100).construct("window_dim")
    windowed_times = foo.time.rolling(time=100).construct("window_dim")
    indexes = windowed_foo.argmin("window_dim")
    result = windowed_times.isel(window_dim=indexes)
    

    【讨论】:

      【解决方案2】:

      您能否将argminrolling(...).reduce 一起使用,然后使用这些值从滚动窗口中选择日期。

      【讨论】:

        猜你喜欢
        • 2021-12-15
        • 1970-01-01
        • 2013-04-01
        • 2019-11-13
        • 2019-05-31
        • 1970-01-01
        • 1970-01-01
        • 2019-09-23
        • 1970-01-01
        相关资源
        最近更新 更多