- 案例目的
科学计算(Scientific Computing),泛指使用计算机科学基于数学建模和数值分析技术,解决科学工程领域中问题的过程,科学计算是计算机科学,数学和工程的交叉学科,随着Python语言生态环境的完善,众多科学计算和数据分析库,例如NumPy、SciPy、Pandas、Matplotlib、IPython等的出现使得Python成为科学计算和数据分析的首选语言。
- 案例内容
研究通过几个简单的应用例子,进入科学计算的大门,掌握科学计算的基本方法与实现过程。
- 实验环境
Pycharm、Anaconda、Jupyter Notebook
- 案例研究
3.0 Python科学计算和数据分析库简介
Python通过众多出色的第三方库,为科学计算和数据分析提供了支持。主要包括:
(1)NumPy。NumPy是Python数据处理的底层库,是高性能科学计算和数据分析的基础,许多其它科学计算库都基于NumPy库。
(2) SciPy。SciPy是Python解决科学计算中常见问题的工具集团,其不同子模块对应于不同的应用,包括:线性代数、插值、积分、最优化、图像处理、统计等等。
(3)Pandas。Pandas是Python的高级数据分析工具库。
(4) Matplotlib。Matplotlib是Python最流行的绘图程序库。Seaborn和Prettyplotlib是在matplotlib的基础上改进功能的绘图程序库。
(5)Scikit。SciKits程序库为SciPy、NumPy和Python提供了专业化的扩展。例如,scikit-learn是用于机器学习和数据挖掘的库。
(6)IPython。IPython是基于Python Shell的交互式解释器,功能更加强大,被广泛应用于交互式科学计算。
3.1 使用Jupyter Notebook进行科学计算
安装Anaconda时会安装Jupyter Notebook (以前的版本也叫IPython Notebook)。Jupyter Notebook是一种交互式的数据分析与记录工具,它既是一个交互计算平台,又是一个记录计算过程的“笔记本”,它是数据分析、科学计算以及交互计算的“利器”。
Jupyter Notebook的特点是支持可重复性的互动计算,即可以重复更改并且执行曾经的输入记录。它可以记录演算过程,并保存成其他很多格式,例如Python脚本、HTML、PDF等。很多课程、数据和博客是用Notebook写作的。Jupyter Notebook使用浏览器作为界面,向后台的IPython服务器发送请求,并显示结果。在浏览器的界面中使用单元格(Cell)输入保存各种信息。Cell主要有两种类型:Code (输入、编辑和执行Python代码)和MarkDown(输入、编辑和显示Markdown格式的文本)。
Jupyter Notebook由服务端和客户端两部分组成。服务端可以运行在本机,也可以运行在远程服务器上,它主要包含负责运算的iPython kernel,以及一个HTTP/HTTPS服务器(Tornado),主要负责代码的解释和计算;而客户端是浏览器,主要负责与用户进行交互,接受用户的输入,以及渲染输出。
3.1.1 使用Juptyer Notebook科学计算
(1)打开Jupyter Notebook,启动本地服务器
图 1 启动Jupyter Notebook
(2)新建Notebook,选择Python
图 2 新建Notebook
(3)简单科学计算
3.1.2 使用Juptyer Notebook数据分析
Jupyter Notebook是一个可以在浏览器中使用的交互式的计算应用程序,该应用程序的所有可见的内容,以笔记本文档表示,包括计算的输入和输出、解释文本、数学、图像和对象的富媒体等表示。因此,Jupyter Notebook可以实现将代码、文字完美结合起来,非常适合从事机器学习、数据分析等数据科学工作的人员。
Jupyter Notebook 常用快捷键操作
Shift+Enter,执行本单元代码,并跳转到下一单元
Ctrl+Enter,执行本单元代码,留在本单元
cell行号前的 * ,表示代码正在运行
命令模式:按ESC进入
Y,cell切换到Code模式
M,cell切换到Markdown模式
A,在当前cell的上面添加cell
B,在当前cell的下面添加cell
双击D:删除当前cell
Z,回退
L,为当前cell加上行号
编辑模式:按Enter进入
多光标操作:Ctrl键点击鼠标(Mac:CMD+点击鼠标)
回退:Ctrl+Z(Mac:CMD+Z)
重做:Ctrl+Y(Mac:CMD+Y)
补全代码:变量、方法后跟Tab键