我想要一个带有“主要”索引的一维数组,然后将其他索引添加到同一轴。例如,如果我的数据如下所示,
[(a1, b1), (a2, b2), ..., (an, bn)]
我可以按索引对元组中的第一个值进行索引。如何在xarray
中做到这一点?
答案 0 :(得分:0)
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',)