如何删除所有没有任何维度的 xarray 数据集坐标和变量?在此示例中,我想从此数据集中删除
item
和 nothing
。
import xarray as xr
ds = xr.Dataset(
{"temperature": (["x", "y"], [[1, 2, 3], [1, 2, 3], [1, 2, 3]]), "nothing": 10},
coords={"item": "hi", "x": [1, 2, 3], "y": [1, 2, 3]},
)
ds
我当然可以使用
ds.drop_vars(["item", "nothing"])
,但我期待像 ds.drop_dims()
或 ds.squeeze()
这样的不同方法可以做到这一点,而无需我指定要删除哪个。
看待这个问题的另一种方法是,如何只选择维度为
(x,y)
的坐标和变量?
Xarray 并不完全有你正在寻找的东西,但类似这样的东西应该可以工作:
ds.drop_vars(lambda x: [v for v, da in x.variables.items() if not da.ndim])