• 案例目的

科学计算(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,启动本地服务器

用python做科学计算 科学计算 python_pycharm

图 1 启动Jupyter Notebook

(2)新建Notebook,选择Python

用python做科学计算 科学计算 python_用python做科学计算_02

图 2 新建Notebook

(3)简单科学计算

用python做科学计算 科学计算 python_python_03

用python做科学计算 科学计算 python_用python做科学计算_04

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键

用python做科学计算 科学计算 python_python_05

用python做科学计算 科学计算 python_用python做科学计算_06