【问题标题】:1D xarray with secondary indices具有二级索引的一维 xarray
【发布时间】:2019-07-05 20:31:35
【问题描述】:

我想要一个带有“主”索引的一维数组,然后将其他索引添加到同一轴。例如,如果我的数据如下所示,

[(a1, b1), (a2, b2), ..., (an, bn)]

我可以按索引索引元组中的第一个值。我如何在xarray 中做到这一点?

【问题讨论】:

  • 你试过用python字典吗?

标签: python-xarray


【解决方案1】:

Xarray 的术语是“multidimensional coordinates”。示例:

import xarray as xr
import numpy as np

data = np.random.random(4)
z = np.arange(4)
x = np.arange(2, 9, 2)
y = np.arange(4) + 100
coords = dict(z=z, x=('z', x), y=('z', y))

arr = xr.DataArray(data, dims=["z"], coords=coords)

arr

<xarray.DataArray (z: 4)>
array([0.665017, 0.136371, 0.547075, 0.586285])
Coordinates:
  * z        (z) int64 0 1 2 3
    x        (z) int64 2 4 6 8
    y        (z) int64 100 101 102 103

然后你可以做一些不错的事情,比如

>>> arr.where(arr.y > 100)
<xarray.DataArray (z: 4)>
array([     nan, 0.136371, 0.547075, 0.586285])
Coordinates:
  * z        (z) int64 0 1 2 3
    x        (z) int64 2 4 6 8
    y        (z) int64 100 101 102 103

但我们仍在处理一维对象:

arr.shape  # (4,)
arr.dims   # ('z',)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-11
    • 2019-01-09
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2018-06-08
    相关资源
    最近更新 更多