独家 | Python数据分析入门指南

简介:
640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


有一个朋友最近问到这个问题,我觉得把它公开出来对其他人也会有帮助。这是给完全不了解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笔记本。互联网上有大量的例子可供参考学习。

 


原文发布时间为:2017-08-09 

本文作者:Zack Jost

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”微信公众号

相关文章
|
1天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
1天前
|
存储 索引 Python
Python从入门到精通——1.3.1练习编写简单程序
Python从入门到精通——1.3.1练习编写简单程序
|
1天前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
1天前
|
数据采集 数据可视化 数据处理
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
|
1天前
|
Java 数据库连接 数据处理
Python从入门到精通:3.1.2多线程与多进程编程
Python从入门到精通:3.1.2多线程与多进程编程
|
1天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
6天前
|
机器学习/深度学习 数据挖掘 计算机视觉
python数据分析工具SciPy
【4月更文挑战第15天】SciPy是Python的开源库,用于数学、科学和工程计算,基于NumPy扩展了优化、线性代数、积分、插值、特殊函数、信号处理、图像处理和常微分方程求解等功能。它包含优化、线性代数、积分、信号和图像处理等多个模块。通过SciPy,可以方便地执行各种科学计算任务。例如,计算高斯分布的PDF,需要结合NumPy使用。要安装SciPy,可以使用`pip install scipy`命令。这个库极大地丰富了Python在科学计算领域的应用。
12 1
|
7天前
|
机器学习/深度学习 数据可视化 数据挖掘
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
19 1
|
7天前
|
人工智能 数据挖掘 程序员
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
35 0
|
7天前
|
数据可视化 数据挖掘 Python
Python中数据分析工具Matplotlib
【4月更文挑战第14天】Matplotlib是Python的数据可视化库,能生成多种图表,如折线图、柱状图等。以下是一个绘制简单折线图的代码示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.figure() plt.plot(x, y) plt.title(&#39;简单折线图&#39;) plt.xlabel(&#39;X轴&#39;) plt.ylabel(&#39;Y轴&#39;) plt.show() ```
12 1