为什么数据分析师不使用C / C ++?

为什么数据分析师不使用C / C ++?

多年以来,经过在C,Java,R和Matlab中开发以及对数据挖掘算法的研究,我终于发现Python是最全面,灵活和易于使用的语言,比C / C ++或Java甚至对数据科学来说都更加方便,这也是python在现在对于数据分析如此重要并受欢迎的几个原因:

首先,Python的核心语言是经过精心设计的,远远优于上述任何一种,其所有细节都经过了调整,可以使编程更快,更容易且更易于维护,在数据分析的过程中,处理海量的数据优势尤为明显。

还有就是与NumPy + SciPy的库,所有数值,统计和矩阵计算提供了坚实的基础,类似于Matlab的(或R)提供,但免费的。在C / C ++中,没有这种类型和规模的可比库。C语言中的所有工具都是微小的独立软件包,每个工具都生活在自己的世界中,没有简单的方法将所有工具集成在一起。Numpy / Scipy不仅提供数百种不同基本算法的即用型实现,而且还创建了通用的“语言”(通用数据类型,运算符等),用于开发其他外部库——工具生态系统可以在一个程序中完全结合在一起。

与R和Matlab不同,Python是通用的语言,并为所有典型的编程任务提供了许多标准库(是的,C / C ++也是通用的,但非常缺乏良好的标准库)。这在数据科学中很重要,因为重点不仅在于开发数据挖掘算法,还在于将其与应用程序的其他部分集成,因此您需要例程来完成除纯数据挖掘之外的其他类型的任务,例如: DB,通过网络(作为客户端或服务器)连接以拉出或推送数据,管理磁盘上的数据存储,多线程和多处理,可视化,用于收集数据的用户界面(GUI),用于数据清理的文本处理例程(在文本挖掘,Web挖掘中)等等。是的,您也确实需要通用例程。仅拥有一堆数据挖掘算法是远远不够的。据分Python具有生成器的美丽功能(Generators-Python Wiki),可以高效地对数据进行管道处理:您可以连续连接几个数据处理功能,并在另一个功能之间逐个传递数据,而无需在内存中实现所有中间数据集-这是处理大量数据的重要功能。C / C ++,Java,R或Matlab都无法比拟。请注意,生成器必须在编译器/解释器本身内部实现,因此无法将此功能实现为附加库,因为生成器是一种非常特殊的函数类型,其在机器代码级别上的工作与典型函数大不相同。

Python与R和Matlab一样,但与C / C ++不同,它具有交互式解释器,您可以在其中轻松播放和试验数据集,将所有结构永久保存在内存中,而无需一次又一次地重新启动整个代码。每次修改后都会刮擦。交互式解释器也有助于可视化。数据分析尽管是一种高级解释语言,但通常比C慢得多,但是Python提供了许多方法来通过用C重写它们来优化代码的关键部分。Numpy和所有标准库都已经以这种方式进行了优化,并且自定义应用程序代码也可以被优化,例如使用PyPy或Cython。因此,在数据分析领域最受欢迎的语言莫过于Python了,所以才会有“全民Python”的说法,但是希望大家在选择学习编程语言的时候,还是要谨慎选择。

发表评论

您的电子邮箱地址不会被公开。