|
|
|
|
移动端

关于Python数据分析的入门指南

有一个朋友最近问到这个问题,我觉得把它公开出来对其他人也会有帮助。这是给完全不了解Python而想找到从零到一的最简单的路径的人的建议。

作者:Zack Jost来源:大数据|2017-11-27 16:37

有一个朋友最近问到这个问题,我觉得把它公开出来对其他人也会有帮助。这是给完全不了解Python而想找到从零到一的最简单的路径的人的建议:

1. 在这里(https://www.continuum.io/downloads)下载适用于你的操作系统的Python 3.X的Anaconda发行版本。这个预先捆绑的发行版会帮助你避开很多跟安装相关的头疼问题。有很多重要的数据分析包都会被预先安装好。

2. 等你安装好之后,测试一下,确认默认的Python解释器是你刚刚安装的版本。这非常重要,因为可能在你的系统里已经安装了一个版本的Python,但是它并不会包含Anaconda发行版中的所有东西,所以你得确保新的版本才是默认版本。在Mac/Linux系统上,你可以在终端输入which python,或者你也可以运行Python的解释器并且确保版本跟你下载的是相符的。如果这一切运行良好,在安装的时候就应该被设置成默认的版本。如果并非如此,你就得停下来并且解决它。

3. 在命令解释器(Shell)中输入jupyter notebook命令,这会打开一个浏览器窗口。如果没有的话,打开浏览器,在地址栏输入:http://localhost:8888。在你打开这个页面之后,创建一个新的Python笔记本(Python notebook)。

4. 点击http://www.kaggle.com/最上面菜单栏中的kernels,并在新打开的页面中的语言过滤器中选择Python(https://www.kaggle.com/kernels?language=Python)。这里大部分都是其他人利用Kaggle上免费公开的数据集做分析或者组建模型时使用的Jupyter笔记本(Jupyter Notebook)。在其中寻找标题里包含类似EDA(Exploratory Data Analysis,探索性数据分析)的笔记本,而不是那些创建预测模型的笔记本。找一个你觉得有趣的,并且在你的笔记本中再现它。

注意: 你会发现,当你再现某些分析的时候,你会遭遇导入错误(Import error)。这常常是因为分析者安装了并没有包含在Anaconda发行版中的包。你最终会需要学习如何跟conda包管理器(Conda package manager)交互,这将是你最终会走入的许多兔子洞之一。通常而言,事情都非常简单,你只需要用到conda install <package name>就可以了,但是你需要找出正确的包的名称,有时候,你还得确认一些其他的细节。还有的时候你可能得用到pip install <package name>,迟一点你都会学到的。

高级库总结

这里是对你会经常接触的重要的库的简要总结:

NumPy:拥有大量的科学计算的核心功能。由于它的内部运算是通过C语言实现的,所以比用Python写成的同样的函数,它的速度会快许多。但它并不是最用户友好的包。

SciPy:跟NumPy非常相似,但是有更多的方式来从分布中取样,计算检验统计量,等等。

MatPlotLib:主要的画图框架。不太讨喜,但却是必备的包。

Seaborn:在导入MatPlotLib包之后导入Seaborn包,默认地,它会使你的绘图变得漂亮许多。它也有一些独特的功能,但是我发现它最酷炫的功能运行起来实在太慢了。

Pandas:基本上是对NumPy/SciPy进行轻量的包装,使它们更用户友好一些。对于和表格数据交互非常理想,Pandas中把表格数据称为数据框(DataFrame)。对画图功能也有一些包装,使得无需使用MPL(Meta-Programming Library,元编程库)就可以快速实现画图。我使用Pandas而非其他的工具来操作数据。

Scikit-learn:包含大量的监督和非监督机器学习算法,以及许多做模型选择的度量工具,是一个优秀的预处理库。这个预处理库可以做主成分分析(Principal Component Analysis),对分类变量进行编码,等等。

小技巧

1. 在Jupyter笔记本中,在运行代码块(Cell)前,于任何一个对象前放置一个问号,它会为你打开这个对象的文档。在你遗忘了你所使用的函数的细节的时候,这是非常方便的。比如说,my_dataframe.apply会解释pandas.DataFrame对象中的apply方法,而这个my_dataframe是pandas.DataFrame的一个实例。

2. 无论你在使用什么库,你通常都需要一直查阅文档,那么就干脆一直在浏览器中打开它。可选变量以及细微的差别实在是太多了。

3. 当你遇到无可避免的故障检修的时候,stackoverflow上也许已经有了问题的答案。

4. 接受这个事实吧:你正在做并不是完全理解的事情,又或者你会被并不重要的细节拖入泥淖。某一天你也许需要理解虚拟环境,它并没有那么困难,只是会有一些弯路给新手增加一些不必要的痛苦而已。

5. 阅读别人的代码。这是最好的方式,可以学习到规范,也是最佳的实践。这就是Kaggle kernels能够帮助你的地方。Github同样也支持在浏览器中展示Jupyter笔记本。互联网上有大量的例子可供参考学习。

【编辑推荐】

  1. 用Python实现一个大数据搜索引擎
  2. 复杂与失控的现实:大数据平台的思考
  3. 五张数据分析图描绘数字人才现状
  4. 大数据架构师必看:常见的七种Hadoop和Spark项目案例
  5. 我国大数据战略实施面临的五大挑战
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

SQL实用简明教程(第2版)

SQL(结构化查询语言)是数据库系统的通用语言,利用它可以用几乎同样的语句在不同的数据库系统上执行同样的操作,在数据库系统的开发中有着...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊