0


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

目录

一、随机抽样(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.7244562837682348print(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.8381002639487756print(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.07619658670655587print(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))# 2print(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.4294526669056693print(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时会判断沿所有方向的值是否都为Truenp.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,否则返回Falsenp.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| 
   
  
 ∣a−b∣≤atol+rtol⋅∣b∣

则 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

本文转载自: https://blog.csdn.net/weixin_44022472/article/details/122848765
版权归原作者 serity 所有, 如有侵权,请联系我们删除。

“NumPy快速入门(四)——随机抽样与通用函数”的评论:

还没有评论