2024年10月16日 python高级教程 Python51
1.Scipy介绍
Scipy在Numpy的基础上则加了众多的数学计算,计算以及工程计算中常用的模块,例如线性代数,常微分方程的数值求解,信号处理,图像处理,系数矩阵等。在本章中,将通过实例介绍Scipy中常用的的一些模块。为了方便读者理解,在示例程序中使用matplotlib,TVTK以及Mayavi等扩展绘制二维以及三维图表。
Scipy的special模块是一个非常完整的函数库,其中包含了基本数学函数,特殊数学函数以及Numpy中出现的所有函数。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。
2.Scipy是由针对特定任务的子模块组成:
3.SciPy-数值计算库
import numpy as np import pylab as pl
import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei']
import scipy scipy.__version__#查看版本
‘1.0.0’
4.常数和特殊函数
from scipy import constants as C print (C.c) # 真空中的光速 print (C.h) # 普朗克常数
299792458.0
6.62607004e-34
C.physical_constants["electron mass"]
(9.10938356e-31, ‘kg’, 1.1e-38)
# 1英里等于多少米, 1英寸等于多少米, 1克等于多少千克, 1磅等于多少千克 print(C.mile) print(C.inch) print(C.gram) print(C.pound)
1609.3439999999998
0.0254
0.001
0.45359236999999997
import scipy.special as S
print (1 + 1e-20) print (np.log(1+1e-20)) print (S.log1p(1e-20))
1.0
0.0
1e-20
m = np.linspace(0.1, 0.9, 4) u = np.linspace(-10, 10, 200) results = S.ellipj(u[:, None], m[None, :]) print([y.shape for y in results])
[(200, 4), (200, 4), (200, 4), (200, 4)]
#%figonly=使用广播计算得到的`ellipj()`返回值 fig, axes = pl.subplots(2, 2, figsize=(12, 4)) labels = ["$sn$", "$cn$", "$dn$", "$\phi$"] for ax, y, label in zip(axes.ravel(), results, labels): ax.plot(u, y) ax.set_ylabel(label) ax.margins(0, 0.1) axes[1, 1].legend(["$m={:g}$".format(m_) for m_ in m], loc="best", ncol=2);
本文链接:http://so.lmcjl.com/news/15500/