Python之所以能够成为数据分析与挖掘领域的最佳语言,是有其独特的优势的。因为他有很多这个领域相关的库可以用,而且很好用,比如Numpy、SciPy、Matploglib、Pandas、ScikitLearn、Keras、Gensim等
1)Numpy,它给Python提供了真正的数组功能,包括多维数组,以及对数据进行快速处理的函数,Numpy还是更多高级扩展库的依赖库,比如后续的Scipy、Matplotlib、Pandas等,都一样;
2)Scipy,他让Python成了半个MATLAB,Scipy提供了真正的矩阵类型,及其大量基于矩阵运算的对象和函数,他包括的功能包括最优化、线性代数、积分、插值、你和、特殊函数、快速傅里叶变换、信号处理与图像处理、常微分求解方程和其他科学与工程中常用的计算;Scipy依赖于Numpy;
3)Matplotlib,对于Python来说,Matplotlib是最著名的绘图库,主要是二维绘图,当然,也可以支持一些简答的三围绘图;
4)Pandas,他是Python下最强大的数据分析和探索工具,没有之一。他包含的高级的数据结构和精巧的工具,使得在Python中处理数据非常快速和简单,Pandas构建在NumPy之上,他使得以Numpy为中心的应用很容易使用,Pandas的名称来自于面板数据(Panel Data)和Python数据分析(Data Analysis),他最初被作为金融数据分析工具而开发出来,由AQR Capital Management公司于2008年4月开发出来,并与2009年底开源;
他的功能非常强大,支持类似于SQL的数据增删改查,并且带有丰富的数据处理函数,支持时间序列分析,支持灵活处理确实数据等。Pandas其实很复杂, 够单独写一本书,如果对他有兴趣可以看看Pandas主要作者之一 WesMcKinney写的《利用Python进行数据分析》一书。
5)StatModels,Pandas着眼于数据的读取、处理和探索,而StatsModels则更加注重数据的统计建模和分析,他使得Python有了R语言的味道。StatModels支持与Pandas的数据交互,因此,他与Pandas结合,成为了Python下强大的数据挖掘组合;
6)Scikit-Learn,这是一个和机器学习有关的库,他是Python下强大的及其学习工具包,他提供了完善的及其学习工具箱,包括:数据预处理、分类、回归、聚类、预测和模型分析等。他依赖于NumPy、SciPy、Matplotlib等;
7)Keras,他是用来搭建神经网络的,他并非简单的神经网络库,而是一个基于Theano的强大的深度学习库,利用它不仅仅可以搭建普通的神经网络,还可以搭建各种深度学习模型,如自编码器、循环神经网络、递归神经网络、卷积神经网络等。由于它是基于Theano的,速度相当快。
8)Theano,他也是一个Python库,他是由深度学习专家YoshuaBengio带领的实验室开发出来的,用来定义、优化和高效地解决多维数组对应数学表达式的模拟估计问题。他具有高效地实现符号分解、高度优化的速度、和稳定性等特点,最重要的是还实现了GPU加速,是的密集型数据的处理速度是CPU的十倍;
9)Gensim,topic modelling of humans,他主要用来处理语言方面的任务,如文本相似度计算、LDA、Word2Vec等,这些领域的任务往往需要比较多的背景知识,通常的情况是:研究这方面的读者已经不需要我再多说什么,而不研究这方面的读者,在这里也说不清楚。