【发布时间】:2019-08-16 07:41:17
【问题描述】:
假设我有一个我希望保存在 python 中的对象集合,比如说,一个数字列表:[0.12, 0.85, 0.11, 0.12], [0.23, 0.52, 0.10, 0.19] 等。进一步假设这些对象由 3 个属性索引,例如“origin”、“destination”和“month”。我希望将这些对象存储在一个可以轻松切片的类数组对象中,最好使用数字索引或名称。
所以,即,
obj[2,1,7] # might return: [0.23, 0.52, 0.10, 0.19]
或者,
obj['chicago','new york','jan'] # might return: [0.12, 0.85, 0.11, 0.12]
还有,
obj[:,'new york','jan'] # would return data with first index = any.
我正在寻找在 python 中实现这一目标的最佳实践。我确实找到了this 帖子,这似乎很合适,但它似乎需要一些开销,并且几乎没有讨论替代方案。我还发现了一个名为xarray 的包,尽管它似乎不那么受欢迎。我正在从 R 转换,我将在其中执行 array() 函数,它为任何类似向量的结构添加多维索引。
【问题讨论】:
-
我很确定你可以用 pandas 做你想做的事,但是访问这些值会比你写的稍微复杂一些
-
熊猫可以做到。否则,请查看结构化 numpy 数组:docs.scipy.org/doc/numpy/user/basics.rec.html
-
pandas专门用于二维“表格”数据,尽管它确实支持分层索引。如果您想要真正的多维标记索引,请使用xarray -
你想要什么是熊猫不能做的?还是你对熊猫不熟悉?
-
@Novice 他们想要的不仅仅是二维。
pandas弃用了 3-DPanel,文档甚至建议xarray
标签: python pandas numpy multidimensional-array python-xarray