假设我有一个datasetof 类型xarray.Dataset。我有一个名为 的维度name(由DataArray中的所有 s共享Dataset,但我认为这对于这个问题并不重要),并且我想选择一个具有特定名称的条目。我会按如下方式执行此操作。
dataset.sel(name="lucifer")
Run Code Online (Sandbox Code Playgroud)
但假设我现在想要选择一个包含名称“lucifer”和“judas”的子数据集。我想做一些类似的事情:
dataset.sel(name=["lucifer", "judas"])
Run Code Online (Sandbox Code Playgroud)
因为这是我能想象到的最接近 Pandas 的语法。但这给了我一个错误。
InvalidIndexError: Reindexing only valid with uniquely valued Index objects
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,我从 Xarray 得到的每个错误似乎都是这个确切的错误,我真的很高兴看到 Xarray 给出更多信息性错误。)所以我的问题是,如何从命名维度中选择多个命名值?假设命名值没有特定的顺序,因此我不能使用切片。
如果您可以为维度使用唯一索引,那么您可以使用where非唯一坐标:
In [11]: ds=xr.Dataset({'a': [1,2,3], 'b': ('a', [4,5,5])})
In [14]: ds.where(ds.b==5, drop=True)
Out[14]:
<xarray.Dataset>
Dimensions: (a: 2)
Coordinates:
* a (a) int64 2 3
Data variables:
b (a) float64 5.0 5.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8647 次 |
| 最近记录: |