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

简介:


有一个朋友最近问到这个问题,我觉得把它公开出来对其他人也会有帮助。这是给完全不了解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月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
287 7
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
320 1
|
2月前
|
数据采集 数据可视化 数据挖掘
Python数据分析实战:Pandas处理结构化数据的核心技巧
在数据驱动时代,结构化数据是分析决策的基础。Python的Pandas库凭借其高效的数据结构和丰富的功能,成为处理结构化数据的利器。本文通过真实场景和代码示例,讲解Pandas的核心操作,包括数据加载、清洗、转换、分析与性能优化,帮助你从数据中提取有价值的洞察,提升数据处理效率。
181 3
|
3月前
|
API 数据安全/隐私保护 开发者
Python自定义异常:从入门到实践的轻松指南
在Python开发中,自定义异常能提升错误处理的精准度与代码可维护性。本文通过银行系统、电商库存等实例,详解如何创建和使用自定义异常,涵盖异常基础、进阶技巧、最佳实践与真实场景应用,助你写出更专业、易调试的代码。
171 0
|
1月前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
1月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
1月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
474 1
|
2月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
180 5
|
2月前
|
数据可视化 数据挖掘 大数据
基于python大数据的水文数据分析可视化系统
本研究针对水文数据分析中的整合难、分析单一和可视化不足等问题,提出构建基于Python的水文数据分析可视化系统。通过整合多源数据,结合大数据、云计算与人工智能技术,实现水文数据的高效处理、深度挖掘与直观展示,为水资源管理、防洪减灾和生态保护提供科学决策支持,具有重要的应用价值和社会意义。

推荐镜像

更多