gpt4 book ai didi

python - drop_sel 不接受切片

转载 作者:行者123 更新时间:2023-12-03 19:16:15 25 4
gpt4 key购买 nike

假设我有一个 xarray DataArray。维度之一是时间维度:

import numpy as np
import xarray as xr
import pandas as pd

time = pd.date_range('1980-01-01', '2017-12-01', freq='MS')
time = xr.DataArray(time, dims=('time',), coords={'time':time})

da = xr.DataArray(np.random.rand(len(time)), dims=('time',), coords={'time':time})

现在,如果我只想要 1990 年到 2000 年的年份,我可以做的很容易:
da.sel(time=slice('1990', '2000'))

但是如果我想 怎么办?下降这些年?我要所有年份的数据 除了 那些。
da.drop_sel(time=slice('1990', '2000'))

失败
TypeError: unhashable type: 'slice'

这是怎么回事?这样做的正确方法是什么?

目前,我正在创建一个新的 DataArray:
tdrop = da.time.sel(time=slice('1990', '2000'))
da.drop_sel(time=tdrop)

但这似乎不必要的复杂。

最佳答案

使用 where 怎么样?与 drop可选参数设置为 True过滤年份?使用下面的示例,数据带有 1990 <= year <= 2000将被丢弃。

da = da.where((da["time.year"] < 1990) | (da["time.year"] > 2000), drop=True)

关于python - drop_sel 不接受切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60445990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com