use*_*537 7 python python-xarray xarray
是否有一种简单的方法可以将 xarray 数据集展平为单个 1D numpy 数组?
例如,展平以下测试数据集:
xr.Dataset({
'a' : xr.DataArray(
data=[10,11,12,13,14],
coords={'x':[0,1,2,3,4]},
dims={'x':5}
),
'b' : xr.DataArray(data=1,coords={'y':0}),
'c' : xr.DataArray(data=2,coords={'y':0}),
'd' : xr.DataArray(data=3,coords={'y':0})
})
Run Code Online (Sandbox Code Playgroud)
到
[10,11,12,13,14,1,2,3]
Run Code Online (Sandbox Code Playgroud)
?
如果您对重复值没问题,则可以使用.to_array()然后将 NumPy 中的值展平,例如,
>>> ds.to_array().values.ravel()
array([10, 11, 12, 13, 14, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3,
3, 3, 3])
Run Code Online (Sandbox Code Playgroud)
如果你不想重复值,那么你需要自己写一些东西,例如,
>>> np.concatenate([v.values.ravel() for v in ds.data_vars.values()])
array([10, 11, 12, 13, 14, 1, 2, 3])
Run Code Online (Sandbox Code Playgroud)
更一般地说,这听起来有点类似于为机器学习应用程序在 2D 中“堆叠”数据变量的建议接口:https : //github.com/pydata/xarray/issues/1317