数据分析圣经《利用python进行数据分析 第二版》

2019-12-09  本文已影响0人  ebook_sea

本书涉及在Python中操纵,处理,清理和处理数据的基本细节。作者目标是为Python编程语言及其面向数据的库生态系统和工具的各个部分提供指南,让读者成为有效的数据分析师。虽然“数据分析”是本书的标题,但重点是与数据分析方法相反的Python编程,库和工具。这是数据分析所需的Python编程。

什么样的数据?

当我说“数据”时,我指的是什么?主要关注结构化数据,这是一个故意含糊的术语,涵盖了许多不同的常见数据形式,例如:

表格或类似电子表格的数据,其中每一列可能是不同的类型(字符串,数字,日期或其他)。这包括通常存储在关系数据库或制表符或逗号分隔的文本文件中的大多数数据。

多维数组(矩阵)。

多个数据表通过键列(对于SQL用户将是主键还是外键)相互关联。

时间序列的间隔均匀或不均匀。

这绝不是完整列表。即使可能并不总是很明显,也可以将很大一部分数据集转换为更适合于分析和建模的结构化形式。如果不是,则有可能从数据集中将特征提取为结构化形式。例如,新闻文章的集合可以被处理成单词频率表,然后可以用来执行情感分析。

像Microsoft Excel这样的电子表格程序的大多数用户(也许是世界上使用最广泛的数据分析工具)对这些数据并不陌生。

对于许多人来说,Python编程语言具有很强的吸引力。自1991年首次出现以来,Python连同Perl,Ruby和其他语言已成为最受欢迎的解释型编程语言之一。自2005年左右以来,Python和Ruby就特别流行,它们使用其众多的Web框架来构建网站,例如Rails(Ruby)和Django(Python)。这样的语言通常被称为脚本语言,因为它们可用于快速编写小型程序,或用于自动执行其他任务的脚本。我不喜欢“脚本语言”一词,因为它包含一个含义,即它们不能用于构建严肃的软件。在解释性语言中,由于各种历史和文化原因,Python开发了一个大型且活跃的科学计算和数据分析社区。在过去的十年中,Python已从尖端或“自担风险”的科学计算语言发展成为学术界和行业中用于数据科学,机器学习和通用软件开发的最重要的语言之一。

对于数据分析,交互式计算和数据可视化,Python将不可避免地与其他广泛使用的开源和商业编程语言及工具(例如R,MATLAB,SAS,Stata等)进行比较。近年来,Python对库(例如pandas和scikit-learn)的支持得到了改进,使其成为数据分析任务的热门选择。结合Python在通用软件工程方面的综合实力,它是构建数据应用程序的主要语言,是一种绝佳的选择。

Python作为胶水

Python在科学计算领域取得成功的部分原因是易于集成C,C ++和FORTRAN代码。大多数现代计算环境共享一组相似的旧版FORTRAN和C库,用于执行线性代数,优化,集成,快速傅立叶变换以及其他此类算法。对于许多使用Python将数十年价值的旧软件粘合在一起的公司和国家实验室来说,同样的情况也是如此。

许多程序由花费大部分时间的一小部分代码组成,并且包含大量不经常运行的“胶水代码”。在许多情况下,粘合代码的执行时间不重要。在优化计算瓶颈方面付出了最大的努力,有时是通过将代码移至较低级的语言(例如C)来进行的。

解决“两种语言”问题

在许多组织中,通常使用更专业的计算语言(例如SAS或R)来研究,原型化和测试新创意,然后将这些创意移植到用Java,C#或Java编写的大型生产系统中。 C ++。人们越来越发现,Python是一种不仅适合进行研究和原型设计,而且适合构建生产系统的语言。当一个开发环境足够时,为什么还要维护两个开发环境?我相信,越来越多的公司会走这条路,因为让研究人员和软件工程师使用同一套编程工具通常会带来重大的组织收益。

为什么不使用Python?

尽管Python是构建多种分析应用程序和通用系统的绝佳环境,但Python的许多用途可能不太适合。

由于Python是一种解释型编程语言,因此一般而言,大多数Python代码的运行速度将比以Java或C ++之类的编译语言编写的代码慢得多。由于程序员的时间通常比CPU的时间更有价值,因此许多人乐于做出这种权衡。但是,在等待时间非常短或对资源利用要求很高的应用程序(例如,高频交易系统)中,使用较低级(但生产率也较低)语言(例如C ++)进行编程以实现最大可能性能所花费的时间可能会花费很多时间。

对于构建高度并发的多线程应用程序,尤其是具有许多CPU绑定线程的应用程序,Python可能是一种具有挑战性的语言。这是因为它具有所谓的全局解释器锁(GIL),该机制可防止解释器一次执行多个Python指令。 GIL存在的技术原因超出了本书的范围。在许多大数据处理应用程序中,确实需要群集计算机才能在合理的时间内处理数据集,但在某些情况下,仍需要使用单进程,多线程系统。

这并不是说Python无法执行真正的多线程并行代码。使用本地多线程(在C或C ++中)的Python C扩展可以并行运行代码,而不受GIL的影响,只要它们不需要定期与Python对象进行交互即可。

中英文+课程代码:

链接:https://pan.baidu.com/s/1FOXCjiG0tsm5GOsLyxq2aA 密码:d6ek

上一篇下一篇

猜你喜欢

热点阅读