Pythonxarray.DataArray:调整坐标大小

2024-04-29 18:29:20 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我的Python包numericalmodel,我为自描述数据集编写了类,该包旨在帮助构建简单的数值模型。我最近偶然发现了很棒的xarray library,现在正考虑使用xarray.dataset和{}来代替我自己的类来进行数据管理。在

我搜索了xarray documentation,但没有找到问题的答案。对不起,如果我忽略了什么。在

据我所知,xarray,它的结构最适合用于不改变形状的静态数据。但是对于我的numericalmodel包,我需要不断地用新的时间值扩展数组,即在每个新的时间步。我事先不知道时间点是什么,因为时间步长可以根据求解的每个方程自适应地确定。在

所以我的问题是:

如何展开xarray.DataArray的坐标?在

一般来说,这可以归结为“如何扩展xarray.DataArray

可能的方法是:

  • 没有太多的开销(例如,不依赖于创建新的DataArrays,然后重新分配坐标,然后删除旧坐标)
  • 可能处理依赖于该坐标的其他数据变量

我想这是不可能的。通常情况下,如果你在一个问题上找不到任何东西,这要么意味着答案是显而易见的,要么是非常重要的;-)

谢谢!在

没有人


Tags: 数据答案模型documentationlibrary时间数据管理结构
1条回答
网友
1楼 · 发布于 2024-04-29 18:29:20

简单的回答是,对于xarray当前的数据模型(构建在numpy数组上)来说,这是不可能有效的。Xarray不支持append,因为numpy中的append需要一个完整的副本。在

有关详细信息,请参阅最近的邮件列表讨论,但基本上,当前推荐的方法是在列表中累积结果,并在末尾只调用concat一次:https://groups.google.com/forum/m/#!topic/xarray/BAN7WobAfyw

也就是说,如果我们构建一个替代存储层而不是numpy数组,那么有很多方法可以有效地实现这一点(在摊余的常量时间内沿着一维进行追加)。实际上,Xarray已经有一些这样的东西了,所以这并不像看起来那么难。不管怎样,如果你对这方面的工作感兴趣,我很乐意讨论下一步在GitHub问题上会是什么样子。在

相关问题 更多 >