gpt4 book ai didi

python - 如何使用 pandas 在 ndarray 上创建索引

转载 作者:行者123 更新时间:2023-12-01 05:19:42 26 4
gpt4 key购买 nike

我对 pandas 提供的轴索引非常感兴趣。我最近使用 numpy 并有一个数组,它可以多次保存多个粒子(1 ... N)的位置(XYZ)(0.0 ... T)。所以这将是一个三维 (T,N,3) 数组。

D = random((10,20,3))

现在我想将 pandas 索引添加到适当的轴,以便更轻松地访问某些时间范围或某些原子选择。假设我想将以下索引标签附加到数据中:

T_index = arange( 10, dtype='f' )
N_index = arange( 20 )
P_index = ["x","y","z"]

我环顾四周,但没有找到一种以方便的方式将它们添加到 pandas 数据框的好方法。我也不太确定 pandas 数据框是否真的是我应该使用的数据结构,因为它可能会将最初形成良好的 numpy ndarray 分解为方便的 numpy 函数(如mean()或sum())的东西速度较慢。

最佳答案

由于您有 3 个轴,因此定义一个面板可能是最方便的:

pan = pd.Panel(D, items=T_index, major_axis=N_index, minor_axis=P_index)
# <class 'pandas.core.panel.Panel'>
# Dimensions: 10 (items) x 20 (major_axis) x 3 (minor_axis)
# Items axis: 0.0 to 9.0
# Major_axis axis: 0 to 19
# Minor_axis axis: x to z

然后,如果您希望将其转换为 DataFrame,请使用:

df = pan.to_frame()

pan 中的基础数据仍然位于一个形状为 (10, 20, 3) 的 numpy 数组中:

In [50]: pan._data
BlockManager
...
FloatBlock: [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0], 10 x 20 x 3, dtype: float64

所以我预计速度不会有任何显着下降。如果需要的话,你总是可以回到 numpy 数组 pan.values 上的 numpy 操作,但希望这是不必要的。

关于python - 如何使用 pandas 在 ndarray 上创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22634246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com