嗨,机智哥又跟大家见面了。前面几节课,我们了解了numpy模块的一些基本功能,知道了如何运用numpy模块中的一些函数解决一些我们生活中的问题。
当然,numpy模块还有大部分我们没有讲到的函数,如果需要的话,大家可以随时查询numpy的帮助文档,了解其函数作用和使用方法。今天开始,机智哥将带领大家学习另一个常用的科学计算模块,这就是scipy模块。
scipy模块是在numpy的基础上,增加了众多的数学计算、科学计算以及工程计算中常用的模块,
例如:线性代数、常微分方程数值求解、信号处理、图像处理、稀疏矩阵等。要使用scipy模块,需要我们在操作系统的终端命令窗口中输入以下命令先安装它:
pip install scipy
如果有不懂怎样安装模块或包的读者,可以看我以前的文章,有在不同操作系统中怎样安装库或包的方法。
在本节课中,机智哥将通过实例介绍scipy中的constants模块、 special模块。constants模块可以叫作常数模块,special模块可以叫作函数模块。
1、constants模块:scipy的constants模块中,包含了众多的物理常数。在我们的编写代码时,可以随时调用,即方便快捷,又避免了出错。是我们编程的好帮手。
安装好scipy模块后,我们可以打开idel窗口,在>>>命令符后输入导入constants模块代码:
>>>from scipy import constants as c # 这里导入constants并重命名为c
然后,我们就可以输入我们需要的常量了。例如:我们需要真空中的光速这个常量c,就可以输入:
>>>c.c
299792458.0
299792458.0就是真空中的光速。如果需要普朗克常数h,就可以输入:
>>>c.h
6.62606957e-34
6.62606957e-34就是普朗克常数。除了物理常数之外,constants模块中还包括许多单位信息,它们是1单位的量转换成标准单位时的数值。例如:
>>>c.mile # 1英里等于多少米
1609.3439999999998
>>>c.inch # 1英寸等于多少米
0.0254
>>>c.gnam # 1克等于多少千克
0.001
>>>c.pound # 1磅等于多少千克
0.45359236999999997
另外,在字典physical_constants中,以物理常量名为键,对应的值是一个含有三个元素的元组,
分别为常数值、单位以及误差,例如下面的程序用来查看电子的质量:
>>>c.physical_constants[electron mass ]
(9.10938291e-31, kg, 4e-38)
2、special模块:scipy的special模块是一个非常完整的函数库,其中包含了基本的数学函数、特殊数学函数以及numpy中出现的所有函数。由于函数数量众多,本节课仅对其进行简要介绍。至于其具体所包含的函数列表,请读者参考scipy的帮助文档。
例如:伽玛(gamma)函数r是概率统计学中经常出现的一个特殊函数,可以用special模块中的gamma()进行计算:
>>>from scipy import special as s
>>>s.gamma(0.5)
1.77245385091
>>>s.gamma(1+1j) # gamma函数支持复数
(0.498015668118-0.154949828302j)
>>>s.gamma(1000)
inf
另一方面,special模块中的某些函数并不是数学意义上的特殊函数。这是由于浮点数的精度有限,无法很精确地表示非常接近1的实数。以后,在使用special模块中的函数时,我们再继续深入讲解。
今天的课就讲到这里。喜欢我的文章,就请关注我,我会带给大家更多更有趣的科学计算知识。再见!