我是一名科学家,最近从 MATLAB 转换为 Python。我正在寻找构建(主要是 2D 和 3D)数据集的方法。我在网上搜索了很多,在我看来,Python 中健壮且通用的数据结构仍然有些悬而未决。我认为这个问题和任何答案对于其他寻求以允许专注于手头问题而不是底层实现的方式构建数据的方法的 Python 科学家来说将是高度相关的。
我的数据结构的一个例子是时间 x 高度 x 参数,其中参数是例如密度、温度等。对于时间维度,我想使用datetime
对象,因为这看起来非常健壮并且便于转换、格式化等.
到目前为止,我已经研究了 Pandas 和 MetaArray(来自 SciPy 食谱)。
Pandas 作为一种数据类型的主要缺点是它远不止这些。例如,面板中的每个维度(项目、长轴、短轴)似乎都有某些首选用途,尽管我不知道是哪个。特别是索引因维度而异,有些维度在创建数据结构后可能无法展开。因此,尽管 Pandas 的一些功能(如分组.groupby
(类型。
我还简要研究了 SciPy 食谱中的MetaArray。这看起来更像是一种简洁的数据类型,索引看起来非常直观和灵活,使其更适合交互式科学工作。但是,它不是(AFAIK)任何软件包的一部分,需要手动下载和安装,如果我需要与其他科学家合作,这使得可移植性更加困难。此外,我发现几乎没有使用它的例子,因此它似乎更像是结构化 N 维数据集问题的临时解决方案。
我也听说过 Blaze,号称“下一代 NumPy”,但据我所知,它仍处于早期开发阶段。(欢迎体验 Blaze!)
因此,我想要一些示例(模块、包等),说明如何在 Python 中构建 N 维数据集(特别是 3D),最重要的是为了方便交互使用。