NumPy快速入门(四)——随机抽样与通用函数

目录

  • 一、随机抽样(np.random模块)
    • 1.1 np.random.random()
    • 1.2 np.random.uniform()
    • 1.3 np.random.randn()
    • 1.4 np.random.randint()
    • 1.5 np.random.rand()
    • 1.6 np.random.normal()
  • 二、常用数学/统计函数
  • 三、常用逻辑函数
    • 3.1 真值测试
      • 3.1.1 np.all()
      • 3.1.2 np.any()
    • 3.2 比较函数
      • 3.2.1 np.array_equal()
      • 3.2.2 np.allclose()

一、随机抽样(np.random模块)

函数 作用
np.random.random(size=None) size是整数整型元组;生成 [0, 1) 之间的随机数
np.random.uniform(a=0.0, b=1.0, size=None) 生成 [a, b) 上的均匀分布的随机数
np.random.randn(d0, d1, …, dn) d0, d1, …, dn控制形状;生成标准正态的随机数
np.random.randint(a, b=None, size=None) 生成 [a, b) 上的随机整数;当 b 省略时,生成 [0, a) 上的随机整数
np.random.rand(d0, d1, …, dn) 与random.random的效果一样,只不过size不再是元组
np.random.normal(mu=0.0, sigma=1.0, size=none) 生成正态分布的随机数

1.1 np.random.random()

print(np.random.random())
# 0.7244562837682348
print(np.random.random(2))
# [0.22283098 0.72975332]
print(np.random.random((2, 2)))
# [[0.30166809 0.39634144]
#  [0.75755076 0.9186064 ]]

1.2 np.random.uniform()

print(np.random.uniform(2, 4))
# 2.8381002639487756
print(np.random.uniform(2, 4, (2, 2)))
# [[2.66832969 3.97791269]
#  [3.28302481 2.77316893]]

1.3 np.random.randn()

print(np.random.randn())
# 0.07619658670655587
print(np.random.randn(1))
# [0.15591832]
print(np.random.randn(2, 2))
# [[ 1.80289612  1.26520523]
#  [-0.18691585 -1.07256013]]

1.4 np.random.randint()

print(np.random.randint(1, 10))
# 2
print(np.random.randint(1, 10, (2, 2)))
# [[2 7]
#  [2 3]]

1.5 np.random.rand()

与 random.random 相比,更推荐使用 random.rand。

print(np.random.rand())
# 0.4294526669056693
print(np.random.rand(2, 3))
# [[0.98298448 0.93969596 0.1592919 ]
#  [0.4399961  0.52320823 0.5306809 ]]

1.6 np.random.normal()

print(np.random.normal(0, 1, (2, 3)))
# [[-1.42867251  1.07133406 -0.41702297]
#  [ 0.83092417  0.17981133  2.15503384]]
print(np.random.normal(2, 100, (2, 3)))
# [[ -8.0837793  161.39657097  35.2570548 ]
#  [ 72.32855794  51.32771614  10.86325406]]

二、常用数学/统计函数

常用数学函数:

函数 作用
np.sin、np.cos 三角函数
np.sqrt 平方根
np.exp 指数函数
np.log、np.log10、np.log2 对数函数
np.abs 绝对值
np.sum 求和
np.prod 求积

常用统计函数:

函数 作用
np.median 计算中位数
np.mean 计算平均值
np.std 计算标准差
np.var 计算方差
np.corrcoef 计算相关系数

三、常用逻辑函数

3.1 真值测试

函数 作用
np.all(a, axis=None) 判断数组a在沿axis方向上的值是否都为True;axis为None时会判断沿所有方向的值是否都为True
np.any(a, axis=None) 判断数组a在沿axis方向上的值是否至少有一个为True

3.1.1 np.all()

A = np.array([[True, False],[True, True]])
print(np.all(A))
print(np.all(A, axis=0))
print(np.all(A, axis=1))
# False
# [ True False]
# [False  True]
print(np.all([1, 1]))
print(np.all([1, 0]))
print(np.all([0, 0]))
# True
# False
# False

3.1.2 np.any()

A = np.array([[True, False],[True, False]])
print(np.any(A))
print(np.any(A, axis=0))
print(np.any(A, axis=1))
# True
# [ True False]
# [ True  True]
print(np.any([1, 1]))
print(np.any([1, 0]))
print(np.any([0, 0]))
# True
# True
# False

3.2 比较函数

函数 作用
np.array_equal(a1, a2) 如果数组a1和a2的形状相同且其中的元素也相同,则返回True,否则返回False
np.allclose(a, b, rtol=1e-5, atol=1e-8) rtol是相对容忍度,atol是绝对容忍度;如果数组a和b在容忍度内按元素相等,则返回True,否则返回False

3.2.1 np.array_equal()

print(np.array_equal([1, 2], [1, 2]))
print(np.array_equal(np.array([1, 2]), np.array([1, 2])))
print(np.array_equal([1, 2], [1, 2, 3]))
print(np.array_equal([1, 2], [1, 4]))
# True
# True
# False
# False

3.2.2 np.allclose()

如果数组 a 和 b 按元素满足以下不等式:

∣ a − b ∣ ≤ a t o l   +   r t o l   ⋅   ∣ b ∣ |a-b|\leq atol \, + \, rtol\, \cdot\, |b| abatol+rtolb

则 allclose 函数会返回True。可以看出,上述不等式是非对称的,因此可以得出结论:

allclose(a, b)allclose(b, a) 在极少数情况下不相等。

print(np.allclose([1e10, 1e-7], [1.00001e10, 1e-8]))
print(np.allclose([1e10, 1e-8], [1.00001e10, 1e-9]))
print(np.allclose([1e10, 1e-8], [1.0001e10, 1e-9]))
# False
# True
# False

你可能感兴趣的:(数据分析,python,机器学习,概率论,数据分析,数学)