在Python中构建一般的2D/3D/ND数据集的最健壮、最具交互性的方法是什么?

2024-04-20 05:28:05 发布

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

我是一个科学家,最近从MATLAB转换成Python。我正在寻找构建我的(主要是二维和三维)数据集的方法。我在网上搜索了不少,在我看来,Python中健壮的通用数据结构仍然有些悬而未决。我认为这个问题和任何答案对于其他Python科学家来说都是非常有意义的,因为他们正在寻找一种结构数据的方法,以便能够集中精力解决手头的问题,而不是底层的实现。在

我的数据结构的一个例子是time x altitude x parameter,其中parameter是例如密度、温度等。对于时间维度,我想使用datetime对象,因为这看起来非常健壮,便于转换、格式化等

到目前为止,我已经研究过熊猫和MetaArray(来自SciPy食谱)。在

Pandas作为一种数据类型的主要缺点是它远不止这些。面板中的每个维度(项目、长轴、短轴)似乎都有特定的首选用途,但我不知道是哪个。具体来说,索引根据维度的不同而不同,在创建数据结构之后,某些维度可能无法展开。因此,尽管Pandas的一些功能,比如分组(.groupby)对我的一小部分工作确实有用,但是Pandas对于交互式科学工作并不是很直观,我发现自己正在寻找其他选项作为我的日常数据类型。在

我还简要地研究了SciPy食谱中的MetaArray。这看起来更像是一种干净的数据类型,而且索引看起来非常直观和灵活,使其更适合于交互式科学工作。然而,它不是(AFAIK)任何软件包的一部分,需要手动下载和安装,这使得如果我需要与其他科学家合作,可移植性就变得更加困难。而且,我几乎找不到任何使用它的例子,因此它看起来更像是一个构建N维数据集问题的临时解决方案。在

我也听说过Blaze,号称是“新一代的纽普瑞”,但据我所知,它仍处于早期开发阶段。(欢迎体验Blaze!)在

因此,我想要一些例子(模块、软件包等)来说明N维数据集(尤其是3D)是如何用Python构建的,最重要的是为了方便交互使用。在


Tags: 数据方法数据结构pandasparameter科学scipy直观