第一部分 NumPy篇
第1章 数据分析概述
1.1 数据分析简介
1.1.1 数据科学是什么?
随着大数据及人工智能时代的来临,数据科学变得越来越重要。所谓数据科学,用最简单的一句话来解释就是:处理数据的科学。
网络爬虫、数据分析、数据可视化、机器学习……
在日常学习或工作中,我们或多或少都听过上面这些名词。但是大多数人只停留在了解上,并不知道这些名词的背后其实是有着深层次联系的。如果想要从数据中提炼出有用的信息,一般流程是下面这样的:
获取数据→处理数据→展示数据。
网络爬虫用于获取数据,数据分析用于处理数据,数据可视化用于展示数据。而机器学习则是进一步对数据进行建模,以便进行预测分析。对于数据科学来说,它的工作流可以总结成“OSEMN”,如表1-1和图1-1所示。
表1-1 数据科学的工作流
图1-1是一张非常有价值的图,从中我们可以得到非常重要的两点信息:①Python不同领域之间的关系;②不同领域都会用到什么库。有了这张图,我们在接触Python各个领域的时候,会有一个清晰的学习路线。
图1-1
1.1.2 数据分析是什么?
数据分析,也就是数据科学中“Scrub”(清洗数据)这一环节。它指的是在统计学理论的支持下,使用合理的工具对相关数据进行一定程度的处理,然后把隐藏在数据中的重要信息提炼出来。
通过数据分析,我们可以挖掘出数据的内在规律及有用信息,进而帮助企业创造新的商业价值、提高运营效率、获得持续竞争的优势等。数据分析这种方式更加科学准确,远不是只凭个人经验(也就是“我觉得”)这种方式能比的,所以现在的企业越来越重视数据分析。
可能很多读者都听过“啤酒和纸尿裤的故事”(见图1-2)。为什么沃尔玛将看似毫不相干的啤酒和纸尿裤摆在一起销售,并且它们的销量双双增长呢?这是因为沃尔玛很好地运用了数据分析手段,挖掘出了啤酒和纸尿裤之间的潜在关系。
图1-2
除了商业领域,数据分析在其他领域也有着大量的应用,例如科学研究、社会调查、体育竞技等。
1.1.3 应该学些什么?
如果想要成为一名真正的数据分析师,那么至少要掌握这3个工具:Excel、Python、SQL。由于本书针对的是Python方面的内容,所以Excel和SQL这两个工具就不在本书中展开介绍了。
那么问题来了:学习Python数据分析,我们应该学些什么呢?对于Python数据分析来说,它有非常重要的3个库:NumPy、Pandas、Matplotlib。这3个库又被叫作Python数据分析“三剑客”(见图1-3),本书就是紧紧围绕这3个库来展开介绍的。
图1-3
可能有些读者会问:“既然Excel可以做数据分析,为什么还要使用Python呢?”虽然Excel好用,但是它更适合处理中小量数据,而不适合处理大量数据(也就是所谓的大数据)。Python处理大量数据的效率,远远不是Excel能比得上的。
除了执行效率比Excel高之外,Python的工作量也少很多。业界有一句比较有意思的话:“Excel十分钟,Python两行代码。”这句话恰恰说明了Python的简单高效。
最后需要说明的是,Python虽然是一门编程语言,但是它在数据分析上实现的功能和Excel是非常相似的。所以,我们在学习Python数据分析时,应该和Excel多多进行对比,这样更能加深理解和记忆,如图1-4所示。
图1-4
【常见问题】
对于Python来说,不同的功能需要使用不同的库,为什么它不将这些功能全部集合到自身呢?
这是因为Python的设计者从来没想过要包揽所有的活儿,Python本身只提供基础语法及一些常用的功能模块。如果把所有功能都集中到Python上面,那么Python就会变得非常“臃肿”并且难以维护,运行速度也会变得非常慢。
对于其他功能,Python使用“分工”的方式来管理,不同的功能使用不同的库。例如网络爬虫可以使用Scrapy,而数据分析可以用Pandas等。分工才能更好地管理,在实际开发中,需要用到什么功能,导入对应的库即可。
对于Python来说,有那么一句话:学习Python,其实就是学习Python的各种库。细想一下,这句话也是有一定道理的。