我一直在使用numpy / scipy进行数据分析。我最近开始学习熊猫。
我已经完成了一些教程,我试图了解Pandas对Numpy / Scipy的主要改进。
在我看来,Pandas的关键思想是在数据框中包含不同的numpy数组,并在其周围设置一些实用函数。
对于大熊猫有什么革命性的,我只是愚蠢地错过了吗?
答案 0 :(得分:10)
Pandas并不是特别革命性的,并且确实使用NumPy和SciPy生态系统来实现它的目标以及一些关键的Cython代码。它可以被视为一个更简单的API功能,增加了关键实用程序,如连接和更简单的分组功能,这对于具有类似数据或时间序列的人特别有用。但是,虽然不是革命性的,但熊猫确实有重要的好处。
有一段时间我还认为Pandas只是NumPy上的实用程序,适合那些喜欢DataFrame界面的用户。但是,我现在看到Pandas提供了这些关键功能(这并不全面):
然而,熊猫有缺点:
答案 1 :(得分:7)
我觉得把熊猫描述为“改进”Numpy / SciPy错过了很多重点。 Numpy / Scipy非常关注有效的数值计算和解决科学家和工程师经常解决的数字问题。如果你的问题从公式开始并且涉及那里的数值解,你可能对这两个很好。
Pandas更加符合以存储在文件或数据库中的数据开头并且包含字符串和数字的问题。考虑从数据库查询中读取数据的问题。在Pandas中,您可以直接read_sql_query
并在一行中拥有可用的数据版本。 Numpy / SciPy中没有相同的功能。
对于以字符串或离散而非连续数据为特征的数据,没有等同于groupby
能力,或类似数据库的匹配值表的连接。
对于时间序列,handling time series data使用日期时间索引可以获得巨大的好处,它允许您平滑地重新采样到不同的间隔,填写值并非常容易地绘制您的系列。
由于我的许多问题都是在电子表格中开始,我也非常感谢以.xls
和.xlsx
格式处理uniform interface的Excel文件相对透明。< / p>
还有一个更大的生态系统,像seaborn这样的软件包可以比基本的numpy / scipy东西更流畅的统计分析和模型拟合。
答案 2 :(得分:0)
一个要点是它引入了新的数据结构,如数据帧,面板等,并且与其他结构和库具有良好的接口。因此,对于python生态系统而言,它通常是对其他库的改进。对我来说,这是一个伟大的工具,如numpy,bcolz。通常我会用它来重塑我的数据,在开始进行数据挖掘之前先了解一下。