写点什么

Python 案例分析|科学计算和数据分析 | 社区征文

作者:TiAmo
  • 2023-07-06
    江苏
  • 本文字数:1750 字

    阅读完需:约 6 分钟

Python案例分析|科学计算和数据分析 | 社区征文

本案例通过 Python 科学计算和数据分析库的安装和基本使用,了解使用 Python 进行科学计算的基本方法。

随着 Python 语言生态环境的完善,众多科学计算和数据分析库(例如 NumPy、SciPy、Pandas、Matplotlib、IPython 等),使得 Python 成为科学计算和数据分析的首选语言。

01、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 的交互式解释器,功能更加强大,被广泛应用于交互式科学计算。

02、使用 IPython Notebook 进行科学计算

在案例研究 1 中简单介绍了 Python 面向科学计算的环境 Anaconda。安装 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),主要负责代码的解释和计算;而客户端是浏览器,主要负责与用户进行交互,接受用户的输入,以及渲染输出。

【例 1】Jupyter Notebook 使用示例。

(1)执行 Windows 菜单命令“开始”|“所有应用”|Anaconda3(64-bit)|Jupyter Notebook,启动本地服务器,并在默认浏览器中打开主页。如图 1 所示。


■ 图 1  启动 Jupyter(IPython)Notebook

(2)新建一个 Notebook 文件。单击如图 1 中的“New”下拉菜单,选择“Python 3(ipykernel)”,新建一个名为 Untitled 的 Notebook。

(3)输入 Markdown 文本。在第一个单元格输入框中,输入“使用 IPython Notebook 进行科学计算”,并设置单元格的类型为 Markdown。如图 2 所示。


■ 图 2  输入 Markdown 文本

(4)输入并执行 Python 代码。使用菜单命令 Insert|Insert Cell Below 或者快捷键 B,在下方插入一个单元格,输入图 3 中所示的代码,按快捷键 Ctrl+Enter,执行并显示结果。


■ 图 3  输入并执行 Python 代码


03、Python 在线性代数中的应用

线性代数(linear algebra)是数学的一个分支,主要研究矩阵理论、向量空间、线性变换和有限维线性方程组等内容。使用 Python 的科学计算库 NumPy 和 SciPy,可以进行线性代数的学习和研究。

3.1 创建向量和矩阵(数组)

通常使用 NumPy 的 array 函数可以创建向量和矩阵(数组),一维数组表示向量、二维数组表示矩阵,也可以使用函数 zeros()、zeros_like()、ones()、ones_like()、empty()、empty_like()、arange()、linspace()、numpy.random.rand()、numpy.random.randn()、fromfunction()、fromfile()等方便创建特殊数组。

【例 2】创建向量和矩阵(数组)示例如图 4 所示。


■ 图 4  创建向量和矩阵(数组)示例

3.2 矩阵的运算

使用 NumPy 包,矩阵的加法和减法可以直接使用运算符+和-,乘法则使用函数 dot()。

【例 3】矩阵的运算。


3.3 线性方程组的求解

已知线性方程组 AX=b,则 X=A-1b。例如:

x + 3y + 5z = 10

2x + 5y + z = 8

2x + 3y + 8z = 3

则:


【例 4】线性方程组求解。



发布于: 刚刚阅读数: 6
用户头像

TiAmo

关注

有能力爱自己,有余力爱别人! 2022-06-16 加入

CSDN全栈领域优质创作者,万粉博主;阿里云专家博主、星级博主、技术博主、阿里云问答官,阿里云MVP;华为云享专家;华为Iot专家;

评论

发布
暂无评论
Python案例分析|科学计算和数据分析 | 社区征文_Python_TiAmo_InfoQ写作社区