我需要对程序中保存统计数据帧的数据结构的基础选择做出战略性决策。
我在一个大表中存储了数十万条记录。每个字段都是不同的类型,包括短字符串。我会对需要快速、实时完成的数据执行多重回归分析和操作。我还需要使用一些东西,这是相对流行和良好的支持。
我了解以下选手:
array.array
列表
那是最基本的事情。不幸的是,它不支持字符串。无论如何,我都需要使用numpy来进行统计部分,所以这个是没有问题的。
numpy.ndarray
ndarray
能够在每列中保存不同类型的数组(例如np.dtype([('name', np.str_, 16), ('grades', np.float64, (2,))])
)。它似乎是自然的赢家,但是……
pandas.DataFrame
这是建立与统计使用的思想,但它是足够有效吗?
我读到,pandas.DataFrame
不再基于numpy.ndarray
(尽管它共享相同的接口)。有人能解释一下吗?或者也许有更好的数据结构?
pandas.DataFrame
非常棒,并且与许多numpy非常好地交互。DataFrame
的大部分都是用Cython编写的,并且经过了充分的优化。我怀疑Pandas API的易用性和丰富性将大大超过您通过围绕numpy构建自己的接口所能获得的任何潜在好处。