2017-01-16 154 views
-1

我想分析模拟的数据。数据由模型的结构组织:分层数据熊猫

即,该模型有节点。每个节点都有一个位置和一个速度。每个位置都有一个x,y和z分量。每个组件在模拟中的每个时间步都有一个值。

要组织我开始通过调用像编写存储所有值的对象,这样我可以得到一个时间序列组件的数据:

values = simulation.nodes(13).position.x(:) 

然后我听到关于熊猫和它如何提供了一些有用的排序和分析工具。我可以用熊猫做我想做的事吗?或者我应该使用ndarrays编写自己的对象?

感谢您的回答。

+0

熊猫是一个数据排序模块。如果您想在将数据放入模型之前自动对数据进行排序,则应该使用它。虽然基于我已经准备好了你的问题,我会说不,但你不会,但我可能会错误地表达你想传达的信息。 –

+0

@PrestonHager不,Pandas不是数据排序模块。它允许你根据需要对数据进行排序,并且它提供了一些更好地处理排序数据的操作,但排序不是它的主要目的。它被开发来做时间序列分析,但已经获得了很多一般的统计方法。 –

+0

好吧,我对熊猫不太擅长。还没有深入探索它。谢谢@DavidZ。 –

回答

0

是,大熊猫可以做你想做的。我建议使用Panel这个三维数据结构。如果我们将面板分为行,列和层,那么每一层可以对应一个节点,每一列可以对应一个度量(所以你会有六列,三个用于位置的组件,另外三个对于速度的组成部分)以及每一行的时间。 Panel的方法可以很容易地按照您喜欢的任何标准对数据进行排序,提取与特定时间或时间范围对应的部分或某些节点,重新采样,插值和处理数据,甚至分离位置来自速度数据的数据。您可能会发现为列使用MultiIndex会很有帮助,它允许您将多级列标签组合为多个组 - 这样您就可以拥有一个位置组和另一个速度组。

+0

谢谢你的回答。创建一个自定义类型即“矢量”并在其中存储三个实数然后在面板中放置多个向量是否是一个好主意? – Benjamin

+0

不,可能不是。当您将任意对象放入其中时,使用面板的许多便利消失,而不是数字。这取决于你想要用这些矢量来做什么,但是你可能会更好地只用面板进行相应的数学运算。这可能是后续问题的材料,在你自己尝试之后。 –

+0

非常感谢。现在我对熊猫的实际情况有了更好的了解。 – Benjamin