我在xarray中有许多数据集,我最终希望将它们组合成一个数据集。例如,一个这样的数据集可以具有名为'x'的数据数组,该数据数组具有维度'a'、'b'和'c_d_e'。我有用于生成数据的相应参数,我想使用这些参数作为坐标。在维度c_d_e的情况下,实际上是三个不同的参数一起变化,即它们只需要一个维度的数据。
因此,虽然我的维度是['a', 'b', 'c_d_e'],但我希望我的坐标是'a', 'b', 'c', 'd', 'e',然后沿着这些维度组合数据集。
代码示例(我想要的):
xr.Dataset({'x': (['d1', 'd2', 'd3_d4_d5'], x), coords=['d1coord':d1arr, 'd2coord': d2arr, 'd3coord': d3arr, 'd4coord': d4arr, 'd5coord': d5arr])当然,我可以使用所有的'a', 'b', 'c'作为维度,但这会使xarray在与坐标和坐标组合不对应的位置用NaNs填充数组,从而极大地增加了占用的空间量。
发布于 2021-11-02 21:17:10
好吧,我找到了一个解决方案,它是如此的简单,以至于我不敢相信我没有早点想到这一点。
我简单地将一个变量'c', 'd', 'e'指定为维度变量,将其他变量指定为非维度变量(它们只是前者的函数)。
https://stackoverflow.com/questions/69815045
复制相似问题