如果我使用python pandas,是否需要结构化数组?

hat*_*rix 20 numpy scipy pandas

既然pandas提供了数据帧结构,那么numpy中是否需要结构化/记录数组?我需要对现有代码进行一些修改,这需要这个结构化数组类型框架,但我正在考虑从现在开始使用pandas.我是否会在任何时候发现我需要一些熊猫不提供的结构化/记录数组功能?

Wes*_*ney 14

pandas的DataFrame是一个高级工具,而结构化数组是一个非常低级的工具,使您能够将二进制blob数据解释为类似于表的结构.在pandas中很难做的一件事是嵌套数据类型与结构化数组具有相同的语义,尽管这可以通过层次索引来模仿(结构化数组不能完成大多数可以通过层次索引进行的操作).

结构化数组也适用于处理通过内存映射(np.memmap)加载的大量表格数据集.这是一个限制,最终将在大熊猫中解决.


Pau*_*l H 7

我目前正在从各种Numpy阵列过渡到Pandas DataFrames.这是相对无痛的,因为Pandas,AFAIK,如果主要建立在Numpy之上.我的意思是.mean(),.sum()所有的工作都是你希望的.最重要的是,添加层次索引并使用.ix[](索引)属性和.xs()(横截面)方法来提取数据的任意部分的能力极大地提高了我的代码的可读性和性能(主要是通过减少数量)我的数据库往返).

我尚未完全研究的一件事是Pandas与Scipy和Matplotlib的更高级功能的兼容性.但是,如果出现任何问题,就可以轻松地拉出一个行,就像数组一样,可以使这些库工作,甚至可以动态转换为数组.例如,DataFrame的绘图方法依赖于matplotlib并为您处理任何转换.

另外,如果你像我一样,你对Scipy的主要用途是统计模块,那么pystatsmodels很快就会成熟并且在很大程度上依赖于熊猫.

这是我的两分钱