Python语言
简要概括一下Python语言在数据分析、挖掘场景中常用特性:
- 列表(可以被修改),元组(不可以被修改)
- 字典(
结构) - 集合(同数学概念上的集合)
- 函数式编程(主要由lambda()、map()、reduce()、filter()构成)
Python数据分析常用库
NumPy
提供真正的数组,相比Python内置列表来说速度更快,NumPy也是Scipy、Matplotlib、Pandas等库的依赖库,内置函数处理数据速度是C语言级别的,因此使用中应尽量使用内置函数。
示例:NumPy基本操作
|
|
输出:
|
|
Scipy
NumPy和Scipy让Python有了MATLAB味道。Scipy依赖于NumPy,NumPy提供了多维数组功能,但只是一般的数组并不是矩阵。比如两个数组相乘时,只是对应元素相乘。Scipy提供了真正的矩阵,以及大量基于矩阵运算的对象与函数。
Scipy包含功能有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理、图像处理、常微分方程求解等常用计算。
示例:Scipy求解非线性方程组和数值积分
|
|
输出:
|
|
Matplotlib
Python中著名的绘图库,主要用于二维绘图,也可以进行简单的三维绘图。
示例:Matplotlib绘图基本操作
|
|
输出:
Pandas
Pandas是Python下非常强大的数据分析工具。它建立在NumPy之上,功能很强大,支持类似SQL的增删改查,并具有丰富的数据处理函数,支持时间序列分析功能,支持灵活处理缺失数据等。
Pandas基本数据结构是Series和DataFrame。Series就是序列,类似一维数组,DataFrame则相当于一张二维表格,类似二维数组,它每一列都是一个Series。为定位Series中的元素,Pandas提供了Index对象,类似主键。DataFrame本质上是Series的容器。
示例:Pandas简单操作
|
|
输出:
|
|
Scikit-Learn
Scikit-Learn依赖NumPy、Scipy和Matplotlib,是Python中强大的机器学习库,提供了诸如数据预处理、分类、回归、聚类、预测和模型分析等功能。
示例:创建线性回归模型
|
|
所有模型都提供的接口:
model.fit():训练模型,监督模型是fit(X,y),无监督模型是fit(X)
监督模型提供的接口:
model.predict(X_new):预测新样本
model.predict_proba(X_new):预测概率,仅对某些模型有用(LR)无监督模型提供的接口:
model.ransform():从数据中学到新的“基空间”
model.fit_transform():从数据中学到的新的基,并将这个数据按照这组“基”进行转换
Scikit-Learn本身自带了一些数据集,如花卉和手写图像数据集等,下面以花卉数据集举个栗子,训练集包含4个维度——萼片长度、宽度,花瓣长度和宽度,以及四个亚属分类结果。
示例:
|
|
输出:
|
|
Keras
Keras是基于Theano的深度学习库,它不仅可以搭建普通神经网络,还可以搭建各种深度学习模型,如自编码器、循环神经网络、递归神经网络、卷积神经网络等,运行速度也很快,简化了搭建各种神经网络模型的步骤,允许普通用户轻松搭建几百个输入节点的深层神经网络,定制度也很高。
示例:简单的MLP(多层感知器)
|
|
参考:
Genism
Genism主要用来处理语言方面的任务,如文本相似度计算、LDA、Word2Vec等。
示例:
|
|
输出:
|
|
参考:
本次笔记是对数据分析和挖掘中常用工具的简要介绍,详细使用会在以后笔记中进行介绍。