用户名
密码
(30天内有效)
注册
注册
首页 > 案例资料 >

知识分享:10个对数据科学最有用的Python库丨城市数据派

我要收藏
2020-01-15

Python一直以来都是数据科学家的宠儿。与云计算、大数据、人工智能、物联网和区块链等领域,特别是人工智能领域,以及数据科学领域的人交流得越多,就会发现熟练掌握Python的重要性。



1579051248326067.jpg




想要快速上手Python?推荐两门0基础在线视频课程给你:


【使用Python进行城市研究系列课程】

专题1:面向城市规划分析的Python基础语法入门

专题2:使用Python获取常用城市数据

专题3:使用Python进行大数据清洗、处理与复杂统计

专题4:城市研究中的Python机器学习实践

请在电脑端打开视频链接:点击此处


【网络爬虫系列课程】

专题1:Python语言介绍和软件安装

专题2:Python必备基础语法

专题3:分类突破网络爬虫

专题4:网络爬虫模块实战

请在电脑端打开视频链接:点击此处




成为会员,即可免费观看以上两门课程,更有200+节在线数据主题视频课程等着你哦,咨询会员加我微信:


1579051524935644.jpg

赶快加我,等你哦








话虽如此,当人们开始学习Python技能时,必须先了解Python库的重要列表。数据科学专业的人们肯定知道那些可以用于数据科学领域的 Python库,但是在面试中被问及它们的名称或者说明它的功能时,我们可能记不住超过5个库。




这里精选了10个 Python库,它们可以帮助数据科学研究或项目,包括什么时候使用它们,它们的重要特性和优点是什么。下面简要介绍10个对于数据科学家和工程师来说最有用的Python库。


 1579051569956749.jpg


1、 Pandas

Pandas是一个开源的Python包,它为标签数据提供了高性能、易于使用的数据结构和数据分析工具。Pandas代表Python数据分析库,Pandas是处理数据的完美工具。它用于快速和简单的数据操作、读取、聚合和可视化。




Pandas可以读取CSV或TSV文件或SQL数据库中的数据,并创建一个具有称为数据框架dataframe的行和列的Python对象(可以称为矩阵数据表)。数据框架非常类似于统计软件中的表格,比如Excel或SPSS。


Pandas的功能:

  1. 索引、操作、重命名、排序、合并矩阵数据表

  2. 更新、添加、删除矩阵数据表中的列

  3. 填补丢失的文件,处理丢失的数据或缺失值

  4. 使用直方图或方框图绘制数据


这些功能使Pandas成为学习Python数据科学的基础库。



 1579051618956887.png


2、NumPy

NumPy是Python中最基本的数据结构包之一,是一个通用的数组处理包。它提供了高性能的多维数组对象和处理这些数组的工具。NumPy是一个高效的通用多维数据容器,是Tensor张量人工智能算法和Pytorch的主要数据类型。


NumPy的主要对象是同构多维数组。它是一组由正整数组索引的数据类型相同的元素或数字组成的表。在NumPy中,维度称为轴,轴的数目称为秩。NumPy的数组类称为ndarray,即array。


NumPy用于处理存储相同数据类型的数组。NumPy简化了对数组及其向量化的数学操作。这显著地提高了性能并相应地加快了执行时间。


NumPy的功能:

  1. 基本数组操作: 添加、乘法、切片、平展、重塑、索引数组

  2. 高级数组操作: 堆栈数组,分段,广播数组

  3. 对日期时间或线性代数进行操作

  4. Python中的基本切片和高级索引操作



1579051671444849.png


3、SciPy

SciPy库是组成SciPy堆栈的核心包之一。现在,SciPyStack和SciPy(库)之间是有区别的。SciPy构建在NumPy数组对象之上,是Stack的一部分,其中包括Matplotlib、Pandas和SymPy等工具。


SciPy库包含高效的数学模块,如线性代数、插值、优化、集成和统计。SciPy库的主要功能是基于NumPy及其数组构建的。SciPy会大量的使用NumPy。


SciPy使用数组作为其基本的数据结构。它有各种模块来执行常见的编程任务,如线性代数、积分、微积分、常微分方程和信号处理。

 


1579051713119770.png


4、Matplotlib

这也是一个经典的Python库。我们可以使用Matplotlib对数据进行可视化的创建。Matplotlib也是来自SciPyStack的库,可以绘制了2d图形。


Matplotlib是Python的绘图库,它提供了一个面向对象的API,用于将绘图嵌入到应用程序中。它与嵌入在Python中的MATLAB非常相似。


Matplotlib的主要功能:

从直方图,条形图,散点图,区域图到饼图,Matplotlib可以绘制多种可视化图形。有了 Matplotlib,通过一点努力和可视化技术,我们可以创建任何可视化效果:

  1. 折线图

  2. 散点图

  3. 面积图

  4. 条形图与柱状图

  5. 饼图

  6. 茎叶图

  7. 等高线图

  8. 矢量场图

  9. 光谱图

  10. Matplotlib还简化了标签、网格、图例和一些格式化实体。基本上,所有的东西都可以画出来!

 


1579051764768908.jpg


5、Seaborn

当阅读关于Seaborn的官方文档时,它被定义为基于Matplotlib的数据可视化库,它提供了一个高级界面,用于绘制具有吸引力和信息量大的统计图形。简而言之,Seaborn是 Matplotlib的延伸,拥有更强大的功能。


那么,Matplotlib和Seaborn有什么不同呢?Matplotlib用于基本的绘图:条形图、饼图、线条图、散点图等等,而Seaborn提供了各种可视化模式,它们的语法不那么复杂,也更简单。


Seaborn的功能:

  1. 确定多个变量之间的关系(相关性)

  2. 观察分类变量的聚合统计

  3. 分析单变量或双变量分布,并在不同数据子集之间进行比较

  4. 为因变量绘制线性回归模型

  5. 提供高层次的抽象,多图网格


对于R或Python可视化库来说,Seaborn都是一个很好的二手工具,比如corrplot和ggplot。



1579051807752040.png


6、Scikit Learn

作为一个GoogleSummerofCode项目介绍给世界的scikit-learn,是一个针对Python的稳健的机器学习库。它包含机器学习算法,如支持向量机SVMs,随机森林,K-means聚类,谱聚类,平均移位,交叉验证等。由于ScikitLearn是SciPyStack的一部分,甚至例如NumPy,SciPy以及一些相关的操作也支持它。


Scikit-learn通过Python中一致的界面提供了一系列监督和非监督式学习算法。像使用NaiveBayes和K-means这样的监督式学习模型来对无标记数据进行聚类时, Scikit learn 将是你的首选。


Scikit Learn的功能:

  1. 分类算法: 垃圾邮件检测,图像识别

  2. 聚类算法: 药物反应,股票价格

  3. 回归算法: 客户细分,分组实验结果

  4. 降维: 可视化,提高效率

  5. 模型选择: 通过参数调整提高精度

  6. 预处理: 将输入数据准备成文本格式,用机器学习算法进行处理


ScikitLearn的重点是数据建模,而不是操作数据。我们有NumPy和Pandas用于汇总和操作。



1579051847574041.png


7、TensorFlow


Tensorflow是一个AI库,可以帮助开发人员使用数据流图创建具有多个层次的大规模神经网络。Tensorflow还促进了深度学习模型的建立,推动了机器学习/人工智能领域的最新技术,并允许轻松部署基于ml的应用程序。


TensorFlow是所有库中最发达的网站之一。像谷歌、可口可乐、Airbnb、Twitter、英特尔、DeepMind这样的巨头,每个人都在使用TensorFlow!


何时使用?Tensorflow在分类、感知、理解、发现、预测和创建数据方面非常有效。



TensorFlow的功能:

  1. 语音/声音识别 —— 物联网、汽车、安全、用户体验/用户界面、电讯

  2. 情感分析 ——主要针对CRM或点评、评论、舆情、NLP等

  3. 基于文本的应用程序—— 威胁检测、谷歌翻译、智能回复

  4. 脸部识别 —— Facebook的深度脸部识别、照片标签、智能解锁

  5. 时间序列 —— 亚马逊、谷歌和Netflix推荐使用TensorFlow

  6. 视频检测 —— 动作感应,游戏中的实时威胁检测,安全,机场


 

1579051877243717.png


8、Keras


Keras是TensorFlow用于构建和训练深层神经网络的高级API。它是Python中的一个开源神经网络库。使用Keras将简化统计建模,图像和文本处理等深度学习算法。


Keras和TensorFlow到底有什么不同?

Keras是一个神经网络Python库,而TensorFlow是一个用于各种机器学习任务的开源库。Tensorflow提供高级和低级API,而Keras只提供高级API。Keras是为Python构建的,这使得它比TensorFlow对用户更加友好、更易于模块化和进行组合。


Keras的功能:

  1. 确定准确度百分比

  2. 计算损失函数

  3. 创建自定义函数层

  4. 内置数据和图像处理

  5. 编写带重复代码块的函数: 20层、50层、100层



1579051917125332.jpg


9、Statsmodels

Statsmodels是一个终极的Python包,可以方便地计算描述统计学和统计模型的估计和推断。


Statsmodels的功能:

  1. 1. 线性回归

  2. 2. 相关性

  3. 3. 普通最小二乘法

  4. 4. 生存分析

  5. 5. 广义线性模型和贝叶斯模型

  6. 6. 单变量与双变量分析,假设检验(基本上覆盖所有R可以做到的)


 

1579051952867509.png


10、Plotly

Plotly是Python绘图库的精华。用户可以导入、复制、粘贴或使用流数据进行分析和可视化。Plotly提供了一个Dash沙盒Python(可以运行一个能力有限的Python),Plotly让它变得很容易。


我们可以使用Plotly创建和显示图像,更新图像,鼠标悬停在文本以得到具体信息。Plotly还有一个额外的功能,可以将数据发送到云服务器。


Plotly的功能:

库中有很多图表,可以绘制:

  1. 基本图表: 折线图、饼图、散点图、泡沫图、圆点图、甘特图、阳光图、 树状图、桑基图、填充区域图

  2. 统计和Seaborn风格: 错误图,箱型图,直方图,小面和格子图,树图,小提琴图,趋势线图

  3. 科学图表: 等高线图,三元图,对数图,场图,地毯图,雷达图,热量图和极地图

  4. 财务图表

  5. 地图

  6. 子图

  7. 变换

  8. Jupyter插件交互





我们已经介绍了数据科学最有用的10个Python库,再介绍四个额外的非常有用的Python库!


1.  Spacy

Spacy是一个开源库, 支持多语种的NLP处理和语义分析,用于Python和Cython(使用Python代码提供类似c语言的感觉和性能,受c语言启发的语法)的高级NLP算法。


2.  Bokeh

交互式数据可视化的Python库。有了Tableau、QlikView或PowerBI这样的工具,我们为什么还需要Bokeh?首先,Bokeh允许使用简单的命令快速构建复杂的统计图。它支持HTML、笔记本或服务器输出。其次,可以将Bokeh可视化集成到Flask和Django应用程序中,或者可视化在其他类库中编写,比如Matplotlib、Seaborn、ggplot。


3.  Gensim

Gensim可以自动提取语义主题的文件,高效率且毫不费力。Gensim算法是无监督的,这意味着不需要人工输入 —— 只需要纯文本文档,然后进行提取。主要用于Word2Vec或Doc2Vec,还可用于LDA主题模型等。


4.  NLTK

NLTK(自然语言工具包)主要用人类语言而不是计算机语言来进行自然语言处理(NLP)。它包含文本处理库,我们可以使用这些库对数据进行标记、解析、分类、词干分析、标记和语义推理。这个库可能听起来有些重复,但是Python中的每个库都是为了提高效率而编写的。

 

从学习的角度讲,从实践案例应用中学习语言的操作,先从模仿开始,然后再组合不同模块,寻找兴趣领域不断深入到数据科学。




您会发现不同领域都有一些Python包可用,说一句俗的话:你想解决问题的算法和程序可能都有人做了类似工作,您先注册Github和Kaggle,从复现别人的算法和程序开始。




沈浩老师

——————

中国传媒大学新闻学院教授、博士生导师

中国传媒大学调查统计研究所所长

大数据挖掘与社会计算实验室主任



本站声明

本文仅代表作者观点,不代表城市数据派立场;
本文系作者授权城市数据派发表,未经许可,不得转载;
本网站上的所有内容均为虚拟服务,一经购买成功概不退款,请您理解。

点赞0