对于我的Python包numericalmodel,我认为它有助于简单数值模型的原型设计,我为自描述数据集编写了类。我最近偶然发现了令人敬畏的xarray library,我正在考虑使用xarray.Dataset
和xarray.DataArray
而不是我自己的类进行数据管理。
我搜索了xarray documentation,但没有找到我的问题的答案。对不起,如果我忽略了什么。
据我了解xarray
,其结构最适用于不会改变其形状的静态数据。但是对于我的numericalmodel
包,我需要不断地使用新的及时值来扩展数组,即在每个新的时间步骤。我事先并不知道时间点,因为时间步长可以自适应地确定每个解决的方程。
所以我的问题:
xarray.DataArray
的坐标?这可以归结为“如何扩展xarray.DataArray
”一般
这样做的可能方法应该是:
DataArray
,然后重新分配坐标,然后删除旧坐标我的猜测是,它不可能就是这样。通常情况下,如果您在某个问题上找不到任何内容,或者意味着答案显而易见,或者它非常重要; - )
谢谢!
nobodyinperson
答案 0 :(得分:0)
简短的回答是,使用xarray的当前数据模型(基于numpy数组)无法有效地实现这一点。 Xarray不支持追加,因为numpy中的追加需要一个完整的副本。
有关详细信息,请参阅最近的邮件列表讨论,但基本上目前推荐的方法是将结果累积到列表中,并且最后只调用concat
一次:https://groups.google.com/forum/m/#!topic/xarray/BAN7WobAfyw
也就是说,如果我们构建一个替代numpy数组的替代存储层,有一些方法可以有效地完成(沿着一个维度在分摊的常量时间内附加)。 Xarray实际上已经有一些,所以这并不像看起来那么难。无论如何,如果您对此可能有兴趣,我很乐意讨论GitHub问题中的后续步骤。