随着近几年大数据越来越火,Python的热度也跟着蹭蹭上涨,Python能在数据科学领域独占鳌头,离不开一些强大的库的支持,下面小编搜集了几个最实用的Python库。如果你正在学习Python,也许这篇文章能帮助你快速上手数据分析。
1.Anaconda
相信大多数 Python 的初学者们都曾为环境问题而头疼不已,但你并不孤独,大家都是这么折腾过来的,打算学习 Python 来做数据分析的你,是不是在开始时就遇到各种麻烦呢?仅仅是安装数据计算库估计就耗尽了所有的热情。
这里推荐使用 Anaconda 来管理你的安装环境和各种工具包。
Anaconda是数据分析的Python发行版本,集成了几百个专门做数据分析的库,像numpy,pandas,matplotlib,scikit-learn等常用的库都有集成,而且还提供跨平台的安装包,实在是做数据分析不二的选择
2.IPython 、Spyder
它是一个增强的Python shell,目的是提高编写,测试,调试Python代码的速度,
支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数。学习ipython将会让我们以一种更高的效率来使用Python。同时它也是利用Python进行科学计算和交互可视化的一个最佳的平台。
IPython提供了两个主要的组件:一个强大的Python交互式shell
供Jupyter notebooks使用的一个Jupyter内核(IPython notebook)
Spyder是anaconda自带的集成开发环境,专门针对数据处理而优化,集成了ipython控制台,可以方便查看数据处理结果及数据可视化
3.NumPy
数据科学的核心库,是其他高级数据分析库的基础和依赖,Numpy不提供高级数据分析功能,可以更加深刻的理解Numpy数组和面向数组的计算。
umpy提供了两种基本的对象:ndarray和ufunc。
ndarray是存储单一数据类型的多维数组,而ufunc是能够对数组进行处理的函数。
Numpy的功能:
N维数组,一种快速、高效使用内存的多维数组,他提供矢量化数学运算。
可以不需要使用循环,就能对整个数组内的数据进行标准数学运算。
非常便于传送数据到用低级语言编写(CC++)的外部库,也便于外部库以Numpy数组形式返回数据。
4.Scipy
Scipy是一款方便、易于使用、专门为科学和工程设计的Python包,它包括统计、优化、整合、线性代数模块、傅里叶变换、信号和图像处理、常微分方程求解器等。Scipy依赖于Numpy,并提供许多对用户友好的和有效的数值例程,如数值积分和优化。
5.Pandas
Pandas是Python的一个数据分析包,Pandas最初被用作金融数据分析工具而开发出来,因此Pandas为时间序列分析提供了很好的支持。
Pandas是为了解决数据分析任务而创建的,Pandas纳入了大量的库和一些标准的数据模型,提供了高效的操作大型数据集所需要的工具。Pandas包含了高级数据结构,以及让数据分析变得快速、简单的工具,提供了大量快速便捷的处理数据的函数和方法。它建立在Numpy之上,使得Numpy应用变得简单。
Pandas在数据探索,数据清洗方面表现的更加出色,可以很容易的处理缺失值,异常值,筛选或合并数据集
Pandas是进行数据清洗、整理的最好工具。
6.Matplotlib
Matplotlib是基于Numpy的Python的一个可视化模块,提供了方便的数据绘图工具,能方便的做线条图、饼图、柱状图以及其他专业图形。
Matplotlib有一套允许定制各种属性的默认设置,可以控制Matplotlib中的每一个默认属性:图像大小、每英寸点数、线宽、色彩和样式、子图、坐标轴、网个属性、文字和文字属性。
7.Scikit-Learn
Scikit-Learn是基于Python机器学习的模块,基于BSD开源许可证,安装需要Numpy Scopy Matplotlib等模块,
scikit-learn为常见的机器学习算法提供了一个简洁而一致的界面,通过一个统一的接口来使用,使得将ML带入生产系统变得简单。 该库结合了高质量的代码和良好的文档,易用性和高性能,是事实上用Python进行机器学习的行业标准。Scikit-Learn的主要功能分为六个部分,分类、回归、聚类、数据降维、模型选择、数据预处理。
Scikit-Learn自带一些经典的数据集,比如用于分类的iris和digits数据集,还有用于回归分析的boston house prices数据集。该数据集是一种字典结构,数据存储在data成员中,输出标签存储在target成员中。
Scikit-Learn还有一些库,比如:用于自然语言处理的Nltk、用于网站数据抓取的Scrappy、用于网络挖掘的Pattern、用于深度学习的Theano等。,
8.Jieba 最好的中文分词工具
jieba 是一个Python实现的分词库,对中文有着很强大的分词能力,在文本分析中的文本分类,情感分析等方面表现优异
1 支持三种分词模式:a. 精确模式,试图将句子最精确地切开,适合文本分析;b. 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;c. 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
2 支持自定义词典关键词提取--基于 TF-IDF 算法的关键词抽取
词性标注
juba是一个Python类库,用于处理中文文本,实现文档词汇矩阵、词汇文档矩阵、文档相似、词汇关联分析、自动文档生成等基础功能,Python第三方库jieba(结巴)的定位和功能不同,jieba主要用于中文分词、词性标注、关键词提取等,是中文文本处理的最基础部分。juba是在中文文本数据预处理后(中文分词、去掉停用词等)对中文文本(文档或词汇)进行向量化,是情感分析、文本聚类、文本分类、信息检索的基础。因此应该将jieba和juba结合起来使用,即先用jieba进行文本预处理,然后利用juba进行文本向量化,是高级应用的基础。
9.TensorFlow
Tensorflow是目前最火的深度学习框架,广泛应用于自然语言处理、语音识别、图像处理等多个领域。Tensorflow采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,是由谷歌开源的机器学习系统。Tensorflow支持Python、C++、java、GO等多种编程语言,以及CNN、RNN和GAN等深度学习算法。Tensorflow除可以在Windows、Linux、MacOS等操作系统运行外,还支持Android和iOS移动平台的运行、以及适用于多个CPU/GPU组成的分布式系统中。
相较于其它的深度学习框架,如:Caffe、Torch、Keras、MXnet、Theano等,Tensorflow的主要优势有以下几点:高度的灵活性、支持Python语言开发、可视化效果好、功能更加强大、运行效率高、强大的社区。
当然TensorFlow也有一些缺点:
10.Keras
Keras是一个高层神经网络库,Keras由纯Python编写而成并基Tensorflow或Theano
Keras很灵活,且比较容易学。可以把keras看作为tensorflow封装后的一个API,适合快速体验 ,但若想学扎实一点则用 Tensorlayer 或者直接使用 TensorFlow 和 Theano。
Python有着像Matlab一样强大的数值计算工具包Numpy;有着绘图工具包Matplotlib;有着科学计算工具包Scipy。Python能直接处理数据,而Pandas几乎可以像SQL那样对数据进行控制。Matplotlib能够对数据和记过进行可视化,快速理解数据。Scikit-Learn提供了机器学习算法的支持,Tensorflow、Keras提供了深度学习框架。