第二热门语言:从入门到精通,Python数据科学简洁教程

小蚂蚁 2021-01-22 12:07:13
入门 语言 精通 第二 热门



Python是一门通用的编程语言,在过去十年中被数据科学领域广泛使用。事实上,Python在数据科学领域是仅次于R的第二热门的编程语言。

本篇文章的主要目的在于向大家展示使用Python学习数据科学有多么的容易。你可能以为自己要先成为一名高级Python程序员,然后才能进行通常与数据科学相关的复杂任务,然而事实并非如此。Python附带了很多有用的工具库,它们可以在后台为你提供强大的支持。你甚至不需要知道程序在运行什么,你不必关心这些。唯一你真正需要知道的是,你需要执行一些特定的任务,而Python使这些任务变得相当简单。

那么,让我们现在就开始吧。

配置数据科学所需的Python环境

无论你使用的电脑是Mac还是Windows,我都建议你下载一个免费的能够让你轻松访问尽可能多的有用模块的Python发行版本。

我试用了一些Python的发行版本,在这里,我推荐大家使用Continuum Analytics提供的Anaconda。这个Python发行版本包含200多个工具库。要理解Python中包、模块和库的差异,请查阅这篇文章。

在你下载Anaconda的时候,你需要选择下载Python 2版本还是Python 3版本。我强烈建议你使用Python 2.17.12版本。截止到2016年底,绝大多数的非计算机科学的Python用户都使用了这个Python版本。它能够出色地完成数据科学任务,比Python 3更容易学习,而且像GitHub这样的网站中有数百万的Python脚本和代码片段,可供大家参考,生活会变得更加容易。

Anaconda也附带了Ipython编程环境,建议大家使用。安装Anaconda后,只需要导航到Jupyter笔记本并开启程序,就可以在Web浏览器中打开IPython。Jupyter笔记本的程序会自动启动Web浏览器中的应用程序。

第二热门语言:从入门到精通,Python数据科学简洁教程


你可以参考这篇文章了解如何在Ipython笔记本中更改路径。

基础知识学习

在你深入了解Python的数据科学库之前,你首先需要学习一些Python的基础知识。Python是一门面向对象的编程语言。在Python中,对象既可以赋值给一个变量,也可以作为参数传递给一个函数。以下都是Python中的对象:数字、字符串、列表、元组、集合、字典、函数以及类。

Python中的函数与普通数学中的函数基本上是一致的——它接收输入数据,对数据进行处理并输出结果。输出的结果完全取决于函数是如何被设计的。另一方面,Python中的类是被设计为输出其他对象的对象的原型。

如果你的目标是编写快速、可复用、易于修改的Python代码,那么你必须使用函数和类。使用函数和类有助于保证代码的高效与整洁。

现在,让我们看看Python中有哪些可用的数据科学工具库。

科学计算:Numpy与Scipy

Numpy是一个主要用于处理n维数组对象的Python工具包,而Scipy则提供了许多数学算法与复杂函数的实现,可用来扩展Numpy库的功能。Scipy库为Python添加了一些专门的科学函数,以应对数据科学中的一些特定任务。

为了在Python中使用Numpy(或其他任何Python库),你必须首先导入对应的工具库。

第二热门语言:从入门到精通,Python数据科学简洁教程


np.array(scores) 将一个列表转换成一个数组。

当你使用普通的Python程序时——未使用任何外部扩展(例如工具库)的Python程序——你只能受限地使用一维列表来存储数据。但是,如果你使用Numpy库来扩展Python,你可以直接使用n维数组。(如果你想知道的话,n维数组是包含一个或多个维度的数组。)

最开始就学习Numpy,是因为在使用Python进行科学计算时Numpy必不可少。对Numpy的深入了解将有助于你高效地使用Pandas和Scipy这样的工具库。

数据再加工:Pandas

Pandas是数据再加工过程中使用的最为广泛的工具。它包含为使数据分析更加快速便捷而设计的高级数据结构与数据操作工具。对于使用R语言进行统计计算的用户,一定不会对DataFrame的变量名感到陌生。

Pandas是Python成长为一个强大而高效的数据分析平台的关键因素之一。

接下来,我将向你展示如何使用Pandas处理一个小型数据集。

第二热门语言:从入门到精通,Python数据科学简洁教程


DataFrame是一个电子表格结构,包含一个有序的列集合。每个列都可以有不同的变量类型。DataFrame既包含行索引,也包含列索引。

第二热门语言:从入门到精通,Python数据科学简洁教程


可视化:Matplotlib + Seaborn + Bokeh

Matlplotlib是Python中一个用于数据可视化的模块。Matplotlib可使你轻松地绘制线形图、饼状图、直方图以及其他专业图表。

你可以使用Matplotlib自定义图表中的每个细节。当你在IPython中使用Matplotlib时,Matplotlib具备缩放、平移等交互特性。Matplotlib在所有操作系统上均支持不同的GUI后端,同时,它也可以将图表导出为若干种常见的图像格式,如PDF、SVG、JPG、PNG、BMP、GIF等。

第二热门语言:从入门到精通,Python数据科学简洁教程


Seaborn是一个基于Matplotlib的数据可视化工具库,用来在Python中创建富有吸引力且内容翔实的统计图表。Seaborn的主要特点在于,其仅使用相对简单的命令就可以从Pandas数据中创建出复杂的图表类型。我使用Seaborn绘制了下面这幅图:

第二热门语言:从入门到精通,Python数据科学简洁教程


机器学习: Scikit-learn

机器学习的目标在于通过向机器(软件)提供一些示例(如何执行任务或者执行什么无法完成任务)来教会机器执行任务。

Python中有很多机器学习的工具库,然而,Scikit-learn是最受欢迎的一个。Scikit-learn建立在Numpy、Scipy与Matplotlib库之上。基于Scikit-learn库,你几乎可以实现所有的机器学习算法,如回归、聚类、分类等等。因此,如果你打算使用Python学习机器学习,那么我建议你从学习Scikit-learn开始。

K近邻算法可用于分类或回归。下面这段代码展示了如何使用KNN模型对鸢尾花数据集进行预测。

第二热门语言:从入门到精通,Python数据科学简洁教程

第二热门语言:从入门到精通,Python数据科学简洁教程


其他的一些机器学习库还有:

  • Theano

  • Pylearn2

  • Pyevolve

  • Caffe

  • Tensorflow

统计学:Statsmodels与Scipy.stats

Statsmodels和Scipy.stats是Python中两个热门的统计学习模块。Scipy.stats主要用于概率分布的实现。另一方面,Statsmodels则为统计学模型提供了类似于R的公式框架。包括描述统计学、统计检验、绘图函数以及结果统计在内的扩展功能均适用于不同类型的数据以及每一种估计器。

下面的代码展示了如何使用Scipy.stats模块调用正态分布。

第二热门语言:从入门到精通,Python数据科学简洁教程

第二热门语言:从入门到精通,Python数据科学简洁教程


正态分布是一种连续的输入为实线上任何值的分布或函数。正态分布可通过以下两个参数进行参数化:分布的均值μ以及方差σ2。

Web抓取:Requests、Scrapy与BeautifulSoup

Web抓取表示从网络中获取非结构化数据(通常为HTML格式),并将其转换为便于分析的结构化格式数据的过程。

深受欢迎的用于Web抓取的工具库有:

  • Scrapy

  • URl lib

  • Beautifulsoup

  • Requests

要从网站中爬取数据,你需要了解一些HTML的基本知识。

这里有一个使用BeautifulSoup库进行网络爬取的示例:

import urllib2

import bs4

第二热门语言:从入门到精通,Python数据科学简洁教程


代码beautiful = urllib2.urlopen(url).read();前往bigdataexaminer.com并获取了网站对应的整个HTML文本。随后,我将文本存储在变量beautiful中。

我使用了urllib2来获取url为http://www.bigdataexaminer.com/ 的网站页面,你也可以使用Requests做同样的事情。这里有篇文章可以帮助你了解urllib2和Requests间的差别。

Scrapy与BeautifulSoup类似。后端工程师Prasanna Venkadesh在Quora上解释了这两个工具库的差别:

"Scrapy是一个Web爬虫,或者说,是一个Web爬虫框架,你为Scrapy提供一个开始抓取操作的根URL,然后你可以指定一些约束,例如要抓取多少个URL等等,这是一个用于Web抓取或爬取的完整框架。

而BeautifulSoup则是一个解析库,它也可以出色地页面爬取任务,并允许你轻松地解析页面中的某些内容。但是,BeautifulSoup只会抓取你提供URL的页面的内容。它不会抓取其他页面,除非你以一定方式手动地将页面URL添加到循环中来。

简单来说,你可以用BeautifulSoup构建出与Scrapy类似的东西。但是BeautifulSoup是一个Python库,而Scrapy则是一个完整的框架。"

结论

现在,你知道了Python的一些基础知识以及这些工具库的用途。是时候使用你所学到的知识来解决具体的数据分析问题了。你可以先处理结构化的数据集,之后可以解决那些复杂的非结构化数据分析问题了。

以上为译文

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

原文链接:https://yq.aliyun.com/articles/68270

版权声明
本文为[小蚂蚁]所创,转载请带上原文链接,感谢
https://www.seoxiehui.cn/article-286561-1.html

  1. 前后端分离有什么了不起,手把手教你用Python爬下来!
  2. 在 Azure 上执行一些简单的 python 工作
  3. 推荐 :利用Python的混合集成机器学习(附链接)
  4. Cunning or orthodox Kung Fu? The most complete usage of Python derivation
  5. It's estimated that 80% of pandas people have to hang up!
  6. What's so great about the separation of front and rear ends? Hand in hand teach you to climb down with Python!
  7. Doing some simple Python work on azure
  8. Recommendation: hybrid integrated machine learning using python (link attached)
  9. Learning PPO algorithm programming from scratch (Python version)
  10. Python OpenCV 图片模糊操作 blur 与 medianBlur
  11. Python OpenCV image blur operation blur and mediablur
  12. 成功解决cv2.error: OpenCV(4.1.2) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: err
  13. Cv2.error solved successfully: opencv (4.1.2) C:: (projects / opencv Python / opencv modules / imgproc / SRC)\ color.cpp:182 : err
  14. Python 中使用 virtualenv 管理虚拟环境
  15. Using virtualenv to manage virtual environment in Python
  16. 如何使用Python执行系统命令?Python学习教程!
  17. How to use Python to execute system commands? Python tutorial!
  18. 快速掌握Python中的循环技术
  19. Quickly grasp the loop technology in Python
  20. Python主流Web框架之Tornado
  21. appium+python自动化63-使用Uiautomator2报错问题解决
  22. Tornado: the mainstream Python Web Framework
  23. Appium + Python automation 63 - using uiautomator2 to solve the problem of error reporting
  24. 爬虫+django,打造个性化API接口
  25. Crawler + Django to create personalized API interface
  26. 爬虫+django,打造个性化API接口
  27. Crawler + Django to create personalized API interface
  28. C、C++、Java、PHP、Python主要应用在哪里方面?
  29. C. Where are the main applications of C + +, Java, PHP and python?
  30. Python 无限级分类树状结构生成算法 「实用代码」
  31. Python infinite classification tree structure generation algorithm "practical code"
  32. 【Azure 存储服务】Python模块(azure.cosmosdb.table)直接对表存储(Storage Account Table)做操作示例
  33. [azure storage service] Python module( azure.cosmosdb.table )Direct operation example of storage account table
  34. 【Azure 存储服务】Python模块(azure.cosmosdb.table)直接对表存储(Storage Account Table)做操作示例
  35. [azure storage service] Python module( azure.cosmosdb.table )Direct operation example of storage account table
  36. openpose c++ 配置教程 + python api
  37. Openpose C + + configuration tutorial + Python API
  38. PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)
  39. 使用python javaSerializationTools模块拼接生成 8u20 Gadget
  40. 萌新入门之python基础语法
  41. python中hmac模块的使用
  42. Python crawler_ Garbage man idle fish crawler turn crawler data integration self use second hand rapid response garbage collection platform_ 3 (with continuous source update)
  43. Using Python javaserialization tools module to generate 8u20 gadget
  44. The basic syntax of Python
  45. The use of HMAC module in Python
  46. 攻防世界web进阶区Web_python_block_chain详解
  47. Attack and defense world web advanced zone Web_ python_ block_ Details of chain
  48. pandas DataFrame的新增行列,修改、删除、筛选、判断元素以及转置操作
  49. Add rows and columns, modify, delete, filter, judge elements and transpose operations in pandas dataframe
  50. pandas DataFrame的新增行列,修改、删除、筛选、判断元素以及转置操作
  51. Add rows and columns, modify, delete, filter, judge elements and transpose operations in pandas dataframe
  52. 虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录
  53. The interview practice is knowledge, python technology interview strategy and skills of the actual record
  54. 用tqdm和rich为固定路径和目标的python算法代码实现进度条
  55. Using tqdm and rich as the fixed path and target of Python algorithm code to realize the progress bar
  56. 我来记笔记啦-Django开发流程与配置
  57. Let me take notes - Django development process and configuration
  58. python数据类型的强制转换
  59. Django报错:'Key 'id' not found in 'xxx'. Choices are: xxx'
  60. Python400集大型视频,从正确的方向出发学习,全套完整送给大家