numpy,scipy,pandas这3个库的区别是什么?
打个比方,pandas类似Excel软件,scipy就像Excel里的函数算法包,numpy则好比构建Excel逻辑的底层语句。
所以说pandas擅长数据处理,scipy精通数学计算,numpy是构建pandas、scipy的基础库。
我们知道numpy通过N维数组来实现快速的数据计算和处理,它也是Python众多数据科学库的依赖,其中就包括pandas、scipy。而numpy本身不依赖于任何其他Python软件包,只依赖于加速的线性代数库,通常为 Intel MKL或 OpenBLAS。
pandas是python数据处理的核心库,它基于数组形式提供了极其丰富的数据操作,对比excel有过之而无不及。它可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征,广泛应用在学术、金融、统计学等各个数据分析领域。
一般来说,学python数据分析只需要学透pandas就够了,辅助加一些numpy、scipy、matplotlib等库。
scipy 是一个用于数学、科学、工程领域的常用软件包,可以处理最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理、图像处理、常微分方程求解器等。 。
其包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。
scipy中主要的计算模块:
- scipy.integrate:数值积分例程和微分方程求解器
- scipy.linalg:扩展了由numpy.linalg提供的线性代数例程和矩阵分解功能
- scipy.optimize:函数优化器(最小化器)以及跟查找算法
- scipy.signal:信号处理工具
- scipy.sparse:稀疏矩阵和系数线性系统求解器
- scipy.special:SPECFUN(这是一个实现了许多常用数学函数(如伽马函数)的Fortran库)的包装器
- scipy.stats:标准连续和离散概率分布、各种统计检验方法,以及更好的描述统计法
- scipy.weave:利用内联C++代码加速数组计算的工具
综上所述,pandas和scipy是建立在numpy数组基础之上的数据工具,三者的协同工作可以高效解决很多问题,在金融、财务、天文、生物、气象和气候、材料等多个领域得到了广泛应用。