教程 > SciPy 教程 > SciPy 教程 阅读:57

SciPy 常量库

SciPy 常量库提供了很多的常量,用于一般科学领域。

SciPy 常量库

scipy.constants 常量库提供各种敞亮。我们必须导入所需的常量并根据要求使用它们。让我们看看这些常量是如何导入和使用的。

我们都知道圆周率是一个数学常数,首先,让我们使用以下示例来比较圆周率 pi 的值。

from scipy.constants import pi as spi
from math import pi as mpi

print("sciPy - pi = %.16f"%spi)
print("math - pi = %.16f"%mpi)

运行示例

运行结果如下

sciPy - pi = 3.1415926535897931
math - pi = 3.1415926535897931

我们可以使用 dir() 函数来查看 constants 模块包含了哪些常量:

from scipy import constants

print(dir(constants))

执行以上代码,输出结果如下:

scipy-包含的常量


SciPy 可用常量列表

数学常量

序号 常量 描述
1 pi 圆周率
2 golden 黄金分割率
from scipy import constants

print(constants.golden)

输出结果如下

1.618033988749895

物理常量

序号 常量 描述
1 c 真空中的光速
2 speed_of_light 真空中的光速
3 h 普朗克常数
4 Planck 普朗克常数
5 G 牛顿万有引力常数
6 e 基本电荷
7 R 摩尔气体常数
8 Avogadro 阿伏伽德罗常数
9 k 玻尔兹曼常数
10 electron_mass(OR) m_e 电子质量
11 proton_mass (OR) m_p 质子质量
12 neutron_mass(OR)m_n 中字质量
from scipy import constants

print(constants.c)
print(constants.speed_of_light)
print(constants.h)
print(constants.Planck)
print(constants.G)
print(constants.e)
print(constants.R)
print(constants.Avogadro)
print(constants.k)
print(constants.m_e)
print(constants.m_p)
print(constants.m_n)

运行示例

执行结果如下

299792458.0
299792458.0
6.62607004e-34
6.62607004e-34
6.67408e-11
1.6021766208e-19
8.3144598
6.022140857e+23
1.38064852e-23
9.10938356e-31
1.672621898e-27
1.674927471e-27

Units(单位) 常量

序号 常量
1 milli 0.001
2 micro 1e-06
3 kilo 1000

这些单位的范围从 yotta、zetta、exa、peta、tera ……kilo、hector、……nano、pico……一直到 zepto。

from scipy import constants

print(constants.yotta)
print(constants.zetta)
print(constants.exa)
print(constants.peta)
print(constants.tera)
print(constants.giga)
print(constants.mega)
print(constants.kilo)
print(constants.hecto)
print(constants.deka)
print(constants.deci)
print(constants.centi)
print(constants.milli)
print(constants.micro)
print(constants.nano)
print(constants.pico)
print(constants.femto)
print(constants.atto)
print(constants.zepto)

运行示例

执行结果如下

1e+24
1e+21
1e+18
1e+15
1e+12
1000000000.0
1000000.0
1000.0
100.0
10.0
0.1
0.01
0.001
1e-06
1e-09
1e-12
1e-15
1e-18
1e-21

其他重要常量

下表列出了 SciPy 中使用的其他重要常量。

序号 常量 描述
1 gram 0.001 kg
2 atomic_mass 原子质量常数
3 degree 弧度
4 minute 一分钟的秒数
5 day 一天的秒数
6 inch 一米对应的英寸数
7 micron 一米的微米数
8 light_year 以米为单位的一光年
9 atm 以帕斯卡为单位的标准大气
10 acre 以平方米为单位的一亩
11 liter 以立方米为单位的一升
12 gallon One gallon in cubic meters
13 kmh 千米每小时以米每秒为单位
14 degree_Fahrenheit 开尔文中的一华氏度
15 eV 以焦耳为单位的 1 电子伏特
16 hp 16
17 dyn 以牛顿为单位的一达因
18 lambda2nu 将波长转换为光频
from scipy from constants

print(constants.gram)
print(constants.atomic_mass)
print(constants.degree)
print(constants.minute)
print(constants.day)
print(constants.inch)
print(constants.micron)
print(constants.light_year)
print(constants.atm)
print(constants.acre)
print(constants.liter)
print(constants.gallon)
print(constants.kmh)
print(constants.degree_Fahrenheit)
print(constants.eV)
print(constants.hp)
print(constants.dyn)
print(constants.lambda2nu(constants.speed_of_light))

运行示例

执行结果如下

0.001
1.66053904e-27
0.0174532925199
60.0
86400.0
0.0254
1e-06
9.46073047258e+15
101325.0
4046.8564224
0.001
0.003785411784
0.277777777778
0.555555555556
1.6021766208e-19
745.699871582
1e-05
1.0

要想记住上面这么多的常量也是比较困难的。获取哪个键对应哪个函数的简单方法是使用scipy.constants.find()方法。

from scipy.constants import find, physical_constants

res = find("boltzmann")
print(res)

运行示例

运行结果如下

['Boltzmann constant', 'Boltzmann constant in Hz/K', 'Boltzmann constant in eV/K', 'Boltzmann constant in inverse meter per kelvin', 'Stefan-Boltzmann constant']

在上面的结果中,我们看到boltzmann中包含很多常量,我们获取 Boltzmann constant in Hz/K 常量

from scipy.constants import find, physical_constants

res = physical_constants['Boltzmann constant in Hz/K']
print(res)

运行示例

执行结果如下

(20836619120.0, 'Hz K^-1', 0.0)

查看笔记

扫码一下
查看教程更方便