1.Scipy介绍
Scipy在Numpy的基础上则加了众多的数学计算,科学计算以及工程计算中常用的模块,例如线性代数,常微分方程的数值求解,信号处理,图像处理,系数矩阵等。在本章中,将通过实例介绍Scipy中常用的的一些模块。为了方便读者理解,在示例程序中使用matplotlib,TVTK以及Mayavi等扩展绘制二维以及三维图表。
Scipy的special模块是一个非常完整的函数库,其中包含了基本数学函数,特殊数学函数以及Numpy中出现的所有函数。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。
2.Scipy是由针对特定任务的子模块组成:
3.SciPy-数值计算库
importnumpyasnp importpylabaspl
importmatplotlibasmpl mpl.rcParams['font.sans-serif']=['SimHei']
importscipy scipy.__version__#查看版本
'1.0.0'
4.常数和特殊函数
fromscipyimportconstantsasC print(C.c)#真空中的光速 print(C.h)#普朗克常数
299792458.0
6.62607004e-34
C.physical_constants["electronmass"]
(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
importscipy.specialasS
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.shapeforyinresults])
#%figonly=使用广播计算得到的`ellipj()`返回值 fig,axes=pl.subplots(2,2,figsize=(12,4)) labels=["$sn$","$cn$","$dn$","$\phi$"] forax,y,labelinzip(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_)form_inm],loc="best",ncol=2);