科学计算和数据分析(Python案例研究四)

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

Python科学计算和数据分析库简介


科学计算和数据分析库:

  • NumPy
    NumPy是Python数据处理的底层库,是高性能科学计算和数据分析的基础,许多其它科学计算库都基于NumPy库
  • SciPy
    SciPy是Python解决科学计算中常见问题的工具集团,其不同子模块对应于不同的应用,包括:线性代数、插值、积分、最优化、图像处理、统计等等
  • Pandas
    Pandas是Python的高级数据分析工具库
  • Matplotlib
    Matplotlib是Python最流行的绘图程序库。Seaborn和Prettyplotlib是在Matplotlib的基础上改进功能的绘图程序库
  • SciKit
    SciKit程序库为SciPy、NumPy和Python提供了专业化的扩展。例如,scikit-learn是用于机器学习和数据挖掘的库
  • IPython
    IPython是基于Python Shell的交互式解释器,功能更加强大,被广泛应用于交互式科学计算

使用IPython Notebook进行科学计算


第一种安装方法:如果你安装了Python面向科学计算的环境Anaconda。安装Anaconda时会安装Jupyter Notebook (以前的版本也叫IPython Notebook)。

第二种安装方法:在控制台cmd中输入以下命令(使用pip命令安装)

先更新pip包

python -m pip install -U pip

然后安装jupyter(即IPython Notebook)

python -m pip install jupyter

如果在安装时出现这个问题:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org’, port=443): Read timed out.

在cmd中输入以下命令,将超时限制修改一下

pip --default-timeout=100 install -U jupyter

Jupyter Notebook是一种交互式的数据分析与记录工具,它既是一个交互计算平台,又是一个记录计算过程的“笔记本”,它是数据分析、科学计算以及交互计算的“利器

Jupyter Notebook 由服务端和客户端两部分组成。服务端可以运行在本机,也可以运行在远程服务器上,它主要包含负责运算的iPython kernel, 以及一个HTTP/HTTPS服务器(Tornado) ,主要负责代码的解释和计算;而客户端是浏览器,主要负责与用户进行交互,接受用户的输入,以及渲染输出。

Jupyter Notebook的使用示例

一:运行Jupyter Notebook

windows + R

输入 cmd ,点击确定

在cmd中输入 jupyter notebook

在浏览器中会出现如下界面:

Jupyter Notebook的特点是支持可重复性的互动计算,即可以重复更改并且执行曾经的输入记录。它可以记录演算过程,并保存成其他很多格式,例如Python脚本、HTML、PDF等。很多课程、数据和博客是用Notebook写作的。

二:新建Notebook文件

打开Notebook,可以看到主面板。在菜单栏中有Files、Running、Clusters三个选项,用到最多的是Files

单击如图的“New”下拉菜单,选择Python 3,新建一个名为Untitled的Notebook

JupyterNotebook使用浏览器作为界面,向后台的IPython服务器发送请求,并显示结果。在浏览器的界面中使用单元格(Cell) 输入保存各种信息。

Cell主要有两种类型:

  • Code(输入、编辑和执行Python代码)
  • MarkDown (输入、编辑和显示Markdown格式的文本)

三:输入markdown文本

在第一个单元格输入框中,输入“点赞、收藏、关注”,并设置单元格的类型为markdown

四:输入并执行Python代码

输入快捷键B也可以在下方插入一个单元格

输入代码,并执行(按快捷键 Ctrl+Enter,或者点击运行按钮)

Python在线性代数中的应用


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

一:创建向量和矩阵(数组)

通常使用NumPy的array函数可以创建向量和矩阵(数组)

  • 一维数组表示向量
  • 二维数组表示矩阵
  • 也可以使用函数zeroszeros_likeonesones_likeemptyempty_likearangelinspacenumpy. random.randnumpy.random.randnfromfunctionfromfile等函数创建特殊数组。

二:矩阵的运算

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

三:线性方程组的求解

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

  • x + 3y + 5z = 10
  • 2x + 5y + z = 8
  • 2x + 3y + 8z = 3

则:


参考资料:

发布了150 篇原创文章 · 获赞 267 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/Zhangguohao666/article/details/103941448