python计算常用的数学计算库有哪些?

2024年10月16日 python高级教程 Python51

1.numpy(高效多维数据表示)

NumPy数组可以将许多数据处理任务表述为简洁的数组表达式,否则需要编写循环。用数组表达式代替循环的做法,通常被称为矢量化。通常矢量化数组运算要比等价的纯Python方式快上一两个数量级,尤其是各种数值计算。

假设我们想要在一组值(网格型)上计算函数sqrt(x^2 + y^2)。np.meshgrid()函数接受两个一维数组,并产生两个二维矩阵,对应于两个数组中所有的(x, y)对。

points = np.arange(-5, 5, 0.01) #1000个间隔相等的点。xs, ys = np.meshgrid(points, points)z = np.sqrt(xs ** 2 + ys ** 2)

2.scipy(数值计算)

Scipy在Numpy的基础上则加了众多的数学计算,计算以及工程计算中常用的模块,例如线性代数,常微分方程的数值求解,信号处理,图像处理,系数矩阵等。在本章中,将通过实例介绍Scipy中常用的的一些模块。为了方便读者理解,在示例程序中使用matplotlib,TVTK以及Mayavi等扩展绘制二维以及三维图表。

Scipy的special模块是一个非常完整的函数库,其中包含了基本数学函数,特殊数学函数以及Numpy中出现的所有函数。

伽马(gamma)函数γ时概率统计学中经常出现的一个函数,它计算公式如下:

显然这样计算起来特别的麻烦,幸运的是。scipy.special中有内置的gamma模块。

>>> import scipy.special  as S
>>> S.gamma(4)
6.0
>>> S.gamma(0.5)
1.7724538509055159
>>> S.gamma(1+1j)
(0.4980156681183554-0.15494982830181081j)
>>> S.gamma(1000)
inf

Γ(z)函数时结成函数在实数和复数系上的扩展,他的增长速度特别的块,1000的阶乘就超过了双精度浮点数的表示范围,因此结果就是无穷大。为了计算更大的范围可以使用gammaln()计算ln(|Γ(x)|)的只,它使用特殊的算法,能够直接计算Γ函数的对数值,因此可以表示更大的范围。

3.sympy(符号计算)

SymPy是Python的一个数学符号计算库。它目的在于成为一个富有特色的计算机代数系统。它保证自身的代码尽可能的简单,且易于理解,容易扩展。SymPy完全由Python写成,不需要额外的库。

Sympy安装

pip install sympy

4.matplotlib(数据可视化)

Matplotlib,是一个Python的2D绘图库,通过这个库,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率图,条形图,错误图,散点图等等

(1)库的安装和环境的配置

windows下:

py -3 -m pip install matplotlib

linux下:

python3 -m pip install matplotlib

建议配合Jupyter使用。在jupyter notebook中,使用

%matplotlib inline

进入交互页面

(2)设置中文环境

首先引入包:

import numpy as np #之后需要用到
import matplotlib as mpl #设置环境变量
import matplotlib.pyplot as plt #绘图专用
from mpl_toolkits.mplot3d import Axes3D #绘制3D图1234

为了让图片兼容中文的说明、名字等,这里需要:

mpl.rcParams['font.sans-serif'] = ['FangSong']
mpl.rcParams['axes.unicode_minus']=False

本文链接:http://so.lmcjl.com/news/15503/

展开阅读全文