数值工具库初探

SciPy是在NumPy数组框架的基础上实现的,它对NumPy数组和基本的数组运算进行了扩展,满足科学家和工程师解决问题时需要用到的大部分数值计算功能。

一、文件输入/输出

1、以matlab文件形式保存和加载数组

1
2
3
4
5
6
7
import numpy as np
from scipy import io as spio

data = np.ones((3, 3))
spio.savemat('file.mat', {'a':data})
data2 = spio.loadmat('file.mat', struct_as_record=True)
print(data2['a'])

2、以图像形式保存和加载数组

1
2
3
4
5
6
7
8
import numpy as np
from scipy import misc

data = np.ones((3, 3))
misc.imsave('file.jpg', data)

data2 = misc.imread('file.jpg')
print(data2)

二、物理和数学常数

scipy.constants模块包含了大量用于科学计算的常数。

1、数学常数

1
2
3
4
5
6
from scipy import constants as C

# 圆周率
print(C.pi)
# 黄金比例
print(C.golden)

2、物理常数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from scipy import constants as C

# 真空中的光速
print(C.speed_of_light)
print(C.c)

# 普朗克常数
print(C.h)
# 普朗克常量
print(C.Planck)

# 牛顿的引力常数
print(C.G)
# 质子质量
print(C.m_p)
# 中子质量
print(C.m_n)
# 电子质量
print(C.m_e)

# 开尔文氏以华氏度表示
print(C.degree_Fahrenheit)
# 帕斯卡为单位表示的标准大气压
print(C.atm)
# 摩尔气体常数
print(C.R)
# 阿伏伽德罗常数
print(C.Avogadro)
# 玻耳兹曼常量
print(C.k)

# 基本电荷
print(C.e)
# 1电子伏以焦耳表示
print(C.eV)

3、单位

1
2
3
4
5
6
7
8
9
10
from scipy import constants as C

# 微 10^-6
print(C.micro)

# 毫 10^-3
print(C.milli)

# 千 10^3
print(C.kilo)

4、其他

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from scipy import constants as C

# 一度等于多少弧度
print(C.degree)

# 一微米等于多少米
print(C.micron)
# 一英寸等于多少米
print(C.inch)
# 一英里等于多少米
print(C.mile)
# 一光年等于多少米
print(C.light_year)

# 一英亩表示为多少平方米
print(C.acre)
# 一升以立方米为单位表示
print(C.liter)
# 一加仑以立方米为单位表示
print(C.gallon)
# 千米每小以米每秒为单位表示
print(C.kmh)

三、常用函数

scipy.special模块中包含了一些常用的杂项函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from scipy.special import *

res1 = cbrt([1000, 27, 8, 23]) # 立方根函数
print(res1)

res2 = exp10(3) # 10^n函数
print(res2)

res3 = sindg(90) # 正弦函数,参数为角度
print(res3)

res4 = comb(5,3) # 组合,从5个中任选3个的组合数
print(res4)

res5 = perm(5,3) # 排列
print(res5)

res6 = gamma(4) # gamma函数
print(res6)

res7 = beta(10,200) # beta函数
print(res7)
0%