一、什么是 SciPy ?
SciPy 是一款开源、方便、专为科学和工程设计的 Python 工具包.它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等。
SciPy 是建立在 Python 的 NumPy 扩展之上的数学算法和便利函数的集合。它通过为用户提供用于操作和可视化数据的高级命令和类,为交互式 Python 会话增加了显着的功能。借助 SciPy,交互式 Python 会话成为数据处理和系统原型设计环境,可与 MATLAB、IDL、Octave、R-Lab 和 SciLab 等系统相媲美。
基于 Python 的 SciPy 的另一个好处是,这也使强大的编程语言可用于开发复杂的程序和专门的应用程序。使用 SciPy 的科学应用程序受益于世界各地的开发人员在软件领域的众多领域开发的附加模块。从并行编程到 Web 和数据库子例程和类,Python 程序员都可以使用。除了 SciPy 中的数学库之外,所有这些功能都可用。
python -m pip install -i https://mirrors.aliyun.com/pypi/simple/ --user numpy scipy matplotlib ipython jupyter pandas sympy nose
建议下载阿里云的镜像,国外的太卡了,会安装失败的(下载包含 matplalib)
二、什么是 NumPy ?
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
建议使用国内的源下载,pip默认国外的源,安装特别慢
三、什么是 Pandas?
Pandas 是基于 NumPy 的一种工具,为了解决数据分析任务而创建的,是一个开源的 python 库。
Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。 最具有统计意味的工具包,某些方面优于R软件。
数据结构有一维的Series,二维的 DataFrame (类似于 Excel 或者 SQL 中的表,如果深入学习,会发现 Pandas 和 SQL 相似的地方很多,例如 merge 函数),三维的 Panel (Pan(el) + da(ta) + s)。
pip install pandas
学习 Pandas 需要掌握:
- 汇总和计算描述统计,处理缺失数据 ,层次化索引
- 清理、转换、合并、重塑、GroupBy 技术
- 日期和时间数据类型及工具(日期处理方便地飞起)
四、什么是 Matplotlib ?
Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。
Python 中最著名的绘图系统,很多其他的绘图例如 seaborn(针对 pandas 绘图而来)也是由其封装而成。 绘制的图形可以大致按照 ggplot 的颜色显示,但是还是感觉很鸡肋。但是 matplotlib 的复杂给其带来了很强的定制性。其具有面向对象的方式及 Pyplot 的经典高层封装。
学习 Matplotlib 需要掌握:
- 散点图,折线图,条形图,直方图,饼状图,箱形图的绘制。
- 绘图的三大系统:pyplot,pylab(不推荐),面向对象
- 坐标轴的调整,添加文字注释,区域填充,及特殊图形 patches 的使用
- 金融的同学注意的是:可以直接调用 Yahoo 财经数据绘图
五、区别
- Numpy:基础的数学计算模块,以矩阵为主,纯数学;
- SciPy:基于 Numpy,提供方法(函数库)直接计算结果,封装了一些高阶抽象和物理模型。比方说做个傅立叶变换,这是纯数学的,用 Numpy;做个滤波器,这属于信号处理模型了,在 Scipy 里找;
- Pandas:提供了一套名为 DataFrame 的数据结构,适合统计分析中的表结构,在上层做数据分析。
更简洁的说:
- NumPy:N 维数组容器
- SciPy:科学计算函数库
- Pandas:表格容器
非数学研究,建议直接入手 pandas,包含基础的 Numpy 方法
以上就是字节宝(zijiebao.com)为你整理的《Python SciPy是什么?和Numpy、Pandas、Matplotlib 有什么区别?》,希望帮到正在学习 Python 的你,更多技术干货请关注W3C技术头条!