如何进行Python数据分析正确的入门之路三部曲
如何进行Python数据分析?正确的“入门之路”三部曲
前言
Python是一种面向对象、直译式计算机程序设计语言,由于他简单、易学、免费开源、可移植性、可扩展性等特点,Python又被称之为胶水语言。下图为主要程序语言近年来的流行趋势,Python受欢迎程度扶摇直上。 由于Python拥有非常丰富的库,使其在数据分析领域也有广泛的应用。
一、为什么要用Python做数据分析?在我看来,大概有3大理由。
广度: 各行各业都有自己的商业场景,每一个行业都需要使用数据来辅助决策。面对现在人人谈大数据的情境,数据分析是一个你不得不会的技能。 精度 : Python是一门编程语言。也许从前的你完全依靠excel的默认设置生成图表,从不思考为什么做一张数据图,而使用编程工具的你必须从图表长宽开始思考每一步成形的理由,从而更精地理解数据。 高效 : 传统的数据工作涵盖大量的重复不动脑操作,比如把日表合成周表,比如批量删除某个字段,比如批量删除空值。这些工作通过鼠标点击软件没有办法编成工作流,但却可以通过python程序编写自动化,省去大量时间。 基础库总结 这里是对你会经常接触的重要的库的简要总结: NumPy: 拥有大量的科学计算的核心功能。由于它的内部运算是通过C语言实现的,所以比用Python写成的同样的函数,它的速度会快许多。但它并不是最用户友好的包。 SciPy: 跟NumPy非常相似,但是有更多的方式来从分布中取样,计算检验统计量,等等。 MatPlotLib: 主要的画图框架。不太讨喜,但却是必备的包。 Pandas: 基本上是对NumPy/SciPy进行轻量的包装,使它们更用户友好一些。对于和表格数据交互非常理想,Pandas中把表格数据称为数据框(DataFrame)。对画图功能也有一些包装,使得无需使用MPL(Meta-Programming Library,元编程库)就可以快速实现画图。我使用Pandas而非其他的工具来操作数据。 机器学习和计算机视觉 Crab:灵活、快速的推荐引擎 gensim:人性化的话题建模库 hebel:GPU 加速的深度学习库 NuPIC:智能计算 Numenta 平台 pattern:Python 网络挖掘模块 PyBrain:另一个 Python 机器学习库 Pylearn2:一个基于 Theano 的机器学习库 python-recsys:一个用来实现推荐系统的 Python 库 scikit-learn:基于 SciPy 构建的机器学习 Python 模块 pydeep:Python 深度学习库 vowpalporpoise:轻量级 Vowpal Wabbit 的 Python 封装 skflow:一个 TensorFlow 的简化接口(模仿 scikit-learn) Caffe: 一个 Caffe 的python接口 OpenCV:开源计算机视觉库 pyocr:Tesseract 和 Cuneiform 的包装库 pytesseract:Google Tesseract OCR 的另一包装库 SimpleCV:一个用来创建计算机视觉应用的开源框架 上面列举的只是其中一部分,还有很多很多。当然,他们很多并非是用Python来实现,但都共同的提供了Python接口,甚至好几个都把Python当成了头等公民(First-Class)。 在此并非想说Python这门语言很强大或者复杂,而恰恰相反,得益于Python的简洁和包容。才让它在数据挖掘领域有如此的地位。
二、Python数据分析流程
1、数据获取:公开数据、Python爬虫
外部数据的获取方式主要有以下两种。
第一种是获取外部的公开数据集,一些科研机构、企业、政府会开放一些数据,你需要到特定的网站去下载这些数据。这些数据集通常比较完善、质量相对较高。
另一种获取外部数据的方式就是爬虫。
比如你可以通过爬虫获取招聘网站某一职位的招聘信息,爬取租房网站上某城市的租房信息,爬取豆瓣评分评分最高的电影列表,获取知乎点赞排行、网易云音乐评论排行列表。基于互联网爬取的数据,你可以对某个行业、某种人群进行分析。
常用的的电商网站、问答网站、二手交易网站、婚恋网站、招聘网站等,都可以爬到非常有价值的数据。
Python具有灵活易用,方便读写的特点,其可以非常方便地调用数据库和本地的数据,同时,Python也是当下网络爬虫的首选工具。
Scrapy
Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
2、数据整理
NumPy (Numeric Python)
提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。
Pandas (Python Data Analysis Library)
Pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。
3、建模分析
每种计算机编程语言,似乎都有自己成名或适用的领域。
在这个大家都在谈云计算、大数据、深度学习的时代,让我们来看看,这些领域里面的代表吧。
说句不负责任的话,Python已经成为数据分析领域里事实上的标准语言。
Scikit-learn
从事数据分析建模必学的包,提供及汇总了当前数据分析领域常见的算法及解决问题,如分类问题、回归问题、聚类问题、降维、模型选择、特征工程。
4、数据可视化
matplotlib:一个 Python 2D 绘图库
bokeh:用 Python 进行交互式 web 绘图
ggplot:ggplot2 给 R 提供的 API 的 Python 版本
plotly:协同 Python 和 matplotlib 工作的 web 绘图库
pyecharts:基于百度 Echarts 的数据可视化库
pygal:一个 Python SVG 图表创建工具
pygraphviz:Graphviz 的 Python 接口
PyQtGraph:交互式实时 2D/3D/ 图像绘制及科学/工程学组件
SnakeViz:一个基于浏览器的 Python’s cProfile 模块输出结果查看工具
vincent:把 Python 转换为 Vega 语法的转换工具
VisPy:基于 OpenGL 的高性能科学可视化工具
如果在Python中看可视化,你可能会想到Matplotlib。除此之外,Seaborn是一个类似的包,这是用于统计可视化的包。你可以做很复杂的图和一些代码。还有Bokeh,它有很多互动功能,可以做很多不同类型的图。类似Bokeh的还有Plotly。它在浏览器中呈现图,能够进行互动的可视化。虽然Python的绘图功能没有R那么强大,但是我看好它的发展前景。
三、总结
开始的时候,你可能考虑的问题不是很周全,总会遇到各种各样的问题,举例如下: 1.环境配置,工具安装、环境变量,对小白太不友好; 2.缺少合理的学习路径,上来 Python、HTML 各种学,极其容易放弃; 3.Python有很多包、框架可以选择,不知道哪个更友好; 4.遇到问题找不到解决办法,学习停滞不前; 5.网上的资料非常零散,而且对小白不友好,很多看起来云里雾里; 6.懂得技巧,但面对具体问题无法系统思考和分析; 但随着你经验的积累,慢慢就会找到分析的方向,有哪些一般分析的维度,比如Top榜单、平均水平、区域分布、同比环比、相关性分析、未来趋势预测等等。随着经验的增加,你会有一些自己对于数据的感觉,这就是我们通常说的数据思维了。 读者福利:知道你对Python感兴趣,便准备了这套python学习资料 对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案 包括:Python永久使用安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!
零基础Python学习资源介绍
👉Python学习路线汇总👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
(全套教程文末领取哈)
👉Python必备开发工具👈
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉实战案例👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉100道Python练习题👈
检查学习结果。
👉面试刷题👈
资料领取
上述这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以微信扫描下方二维码输入“领取资料” 即可自动领取
或者
【
】领取