Bridge619

Bridge619

Bridge619

命定的局限尽可永在,不屈的挑战却不可须臾或缺!

101 文章数
11 评论数
来首音乐
光阴似箭
今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

Python数据分析工具

Bridge619
2023-02-28 / 0 评论 / 982 阅读 / 1 点赞

Python数据分析工具

扩展库 简介
NumPy 提供数组支持及相应的高效处理函数
SciPy 提供矩阵支持及矩阵相关的数值计算模块
Matplotlib 强大的数据可视化、作图库
pandas 强大、灵活的数据分析和探索工具
StatsModels 统计建模和计量经济学,包括描述统计、统计模型估计和推断
scikit-learn 支持回归、分类、聚类等强大的机器学习库
Keras 深度学习库,用于建立神经网络以及深度学习模型
Gensim 用来做文本主题模型的库,文本挖掘可能会用到

1. NumPy

​ Python并没有提供数组功能,虽然列表可以完成基本的数组功能,但它不是真正的数组,而且在数据量较大时,使用列表的速度就会很慢。而NumPy提供了真正的数组功能以及对数据进行快速处理的函数。

​ **值得注意的是,**NumPy内置函数处理数据的速度是 C 语言级别的,因此在编写程序时,应当尽量使用其内置函数,提高效率(尤其是涉及到循环的问题)。例如当有一组数据包含$0$和其他数字,当我们想要这组数据中的数为$0$时值变为$1$,不为$0$时变为$-1$,那么就可以避免使用循环来判断,直接使用np.where(condition,x,y):如果condition为真,返回x,否则返回y这个函数来处理:np.where(i == 0, 1, -1)

​ NumPy是Python中比较成熟和常用的库,在互联网中有许多教程,比如其👉官网

2. SciPy

​ SciPy包含的功能有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中的计算。显然,这些功能都是挖掘与建模必需的。👉官网

​ SciPy 依赖于 NumPy,因此安装此之前需要安装好 NumPy。安装好 SciPy后,使用 SciPy求解非线性方程组$2x_1-x_2^2=1,x_1^2-x_2=2$和数值积分,代码如下:

#-*-coding:utf-8-
#求解非线性方程组2×1-×2^2=1,×1^2-X2=2
from scipy.optimize import fsolve # 导入求解方程组的函数
def f(x):                         #定义要求解的方程组
	x1=×[0]
	×2=×[1]
	return[2*X1-X2**2-1,X1★*2-X2-2]

result = fsolve(f,[1,1])         #输入初值[1,1]并求解
print(result)                      #输出结果,为array([1.91963957,1.68501606
#数值积分
from scipy import integrate        #导入积分函数
def g(x):                         #定义被积函数
	return(1-×**2)**0.5
pi_2,err=integrate.quad(g,-1,1) #积分结果和误差
print(pi_2*2)                      #由微积分知识知道积分结果为圆周率p1的一半

3. Matplotlib

​ 不论是数据挖掘还是数学建模,都要面对数据可视化的问题。对于 Python来说,Matplotlib是最著名的绘图库,主要用于二维绘图,当然也可以进行简单的三维绘图。它不仅提供一整套和 MATLAB相似但更为丰富的命令,让我们可以很快捷地用 Python可视化数据,而且允许输出达到出版质量的多种图像格式。

​ 值得注意的是标签中有中文,就会发现中文标签无法正常显示,这是因为 Matplotlib的默认字体是英文子特,解决方法是在作图之前手动指定默认字体为中文字体,如黑体(Sim_Hei),命令如下:

plt.rcParams['font.sans-serif'] = ['SimHei']

​ 其次,保存作图图像时,也有可能不正常显示,对此可通过以下代码解决:

plt.reParams['axes.unicode_minus'] = False # 解决保存图像时负号‘-’显示为方块的问题

👉官网

4. pandas

​ pandas是Python下最强大的数据分析和探索工具。它包含高级的数据结构和精巧的工具,使得用户在Python中处理数据非常的简单和快速。

​ pandas的功能非常强大,支持类似SQL的数据增、删、查、改,并且带有丰富的数据处理函数;支持时间序列分析功能;支持灵活处理缺失数据等。

​ pandas基本的数据结够是 Series 和 DataFrame 。Series顾名思义就是序列,类似一维数组;DataFrame则相当于一张二维的表格,类似二维数组,它的每一列都是一个 Series 。为了定位Series中的元素,pandas提供了Index这一对象,每个Series都会带有一个对应的Index,用来标记不同的元素,Index的内容不一定是数字,也可以是字母、中文等,它类似于SQL中的主键。

​ 类似的,DataFrame相当于多个带有同样Index的Series的组合(本质是Series的容器),每个Series都带有一个唯一的表头,用来标识不同的Series 。

5. StatsModels

​ pandas着重于数据的读取、处理和探索,而StatsModels则更加注重数据的统计建模分析,它使得Python有了R语言的味道。StatsModels支持与pandas进行数据交互,因此,它与pandas结合成为Python下强大的数据挖掘组合。

6. scikit-learn

scikit-learn 是Python下强大的机器学习工具包,它提供了完善的机器学习工具箱,包括数据预处理、分类、回归、聚类、预测、模型分析等。

👉官网

7. Keras

​ Keras是一个基于Theano的强大的深度学习库,利用它不仅可以搭建普通的神经网络,还可以搭建各种深度学习模型,如自编码模型、循环神经网络、递归神经网络、卷积神经网络等。由于它是基于Theano的,因此速度也相当的快。

​ Theano也是Python的一个库,用来定义、优化和高效解决多维数组数据对应数学表达式的模型估计问题。它具有高效实现符号分解、高度优化的速度和稳定性等特点,最重要的是它还实现了GPU加速,使得密集型数据的处理速度是GPU的数十倍。用Theano就可以搭建起高效的神经网络模型,然而对于普通读者来说门槛还是相当高。

​ Keras正是为此而生的,它大大简化了搭建各种神经网络模型的步骤,允许普通用户轻松搭建并求解具有几百个输入节点的深层神经网络。

文章不错,扫码支持一下吧~
上一篇 下一篇
评论