菜鸟笔记-Numpy函数-random.rand/random.standard_normal/random.normal/random.uniform

random.rand函数

numpy.random.rand 是 NumPy 库中的一个函数,用于从均匀分布中生成随机浮点数。这些浮点数位于半开区间 [0.0, 1.0),也就是说它们包括 0.0 但不包括 1.0。

1函数示例

numpy.random.rand(d0, d1, ..., dn)

参数

  • d0, d1, ..., dn:整数,表示输出的随机数组的维度。如果没有提供任何参数,则返回一个标量(单个随机浮点数)。

返回值

  • 返回一个形状为 (d0, d1, ..., dn) 的数组,其中包含了从均匀分布 [0.0, 1.0) 中随机抽取的浮点数。

2示例

示例 1:生成单个随机浮点数

import numpy as np  
  
# 生成一个位于 [0.0, 1.0) 之间的随机浮点数  
random_float = np.random.rand()  
print(random_float)

输出结果: 生成一个位于 [0.0, 1.0) 之间的随机浮点数 

0.7292651888729444

示例 2:生成一个随机浮点数数组

import numpy as np  
  
# 生成一个形状为 (3,) 的数组,包含随机浮点数  
random_floats = np.random.rand(3)  
print(random_floats)

输出结果类似于:

[0.22655261 0.14549794 0.81959531]

示例 3:生成一个二维随机浮点数数组

import numpy as np  
  
# 生成一个形状为 (2, 3) 的二维数组,包含随机浮点数  
random_matrix = np.random.rand(2, 3)  
print(random_matrix)

输出结果类似于:

[[0.69793487 0.92080438 0.79024895]
 [0.21149495 0.55471829 0.96925194]]

示例 4:生成一个多维随机浮点数数组

import numpy as np  
  
# 生成一个形状为 (2, 2, 2) 的三维数组,包含随机浮点数  
random_tensor = np.random.rand(2, 2, 2)  
print(random_tensor)

输出结果为:

[[[0.1002439  0.65823964]
  [0.83135404 0.64682726]]

 [[0.23616227 0.45717437]
  [0.23748224 0.80672744]]]

3注意事项

  • numpy.random.rand 函数生成的随机数是从均匀分布中抽取的,也就是说,每个数在 [0.0, 1.0) 区间内被抽取的概率是相同的。
  • 生成的随机数实际上是伪随机数,这意味着它们是通过一个确定的算法生成的,并且在每次运行程序时,如果随机数生成器的种子(seed)相同,则生成的随机数序列也会相同。如果需要每次运行程序时都生成不同的随机数序列,可以在程序开始时设置随机数生成器的种子,如 np.random.seed(some_integer)

通过 numpy.random.rand 函数,你可以方便地生成任意形状的随机浮点数数组,这在需要进行模拟、测试算法或创建随机数据集时非常有用。

random.standard_normal函数

 numpy.random.standard_normal 是 NumPy 库中的一个函数,用于从标准正态分布(也称为单位正态分布)中生成随机浮点数。标准正态分布是一种概率分布,其均值为 0,标准差为 1。

1函数示例

numpy.random.standard_normal(size=None)

参数

  • size:整数或整数元组,可选参数。输出数组的形状。如果未提供,则返回一个标量(单个随机浮点数)。

返回值

  • 返回一个形状为 size 的数组,数组中的元素是从标准正态分布中随机抽取的浮点数。

2示例

示例 1:生成单个标准正态分布的随机数

import numpy as np  
  
# 生成一个标准正态分布的随机数  
random_normal = np.random.standard_normal()  
print(random_normal)

结果输出:

-0.45627660030943773

示例 2:生成一个标准正态分布的随机数组

import numpy as np  
  
# 生成一个形状为 (3,) 的数组,包含标准正态分布的随机数  
random_normals = np.random.standard_normal(3)  
print(random_normals)

结果输出:

[-1.33435244 -0.1071087  -1.13890303]

示例 3:生成一个二维标准正态分布的随机数组

import numpy as np  
  
# 生成一个形状为 (2, 3) 的二维数组,包含标准正态分布的随机数  
random_normal_matrix = np.random.standard_normal((2, 3))  
print(random_normal_matrix)

结果输出:

[[-0.27204649  0.89816457  0.61386239]
 [-0.39830262 -0.44730264  0.89667475]]

示例 4:设置随机数生成器的种子以获得可重复的结果

import numpy as np  
  
# 设置随机数生成器的种子  
np.random.seed(0)  
  
# 生成一个形状为 (3,) 的数组,包含标准正态分布的随机数  
# 由于设置了种子,每次运行这段代码时都会得到相同的随机数序列  
reproducible_normals = np.random.standard_normal(3)  
print(reproducible_normals)
结果输出:
[1.76405235 0.40015721 0.97873798]

3注意事项

  • numpy.random.standard_normal 生成的是标准正态分布的随机数,其均值(mean)为 0,标准差(standard deviation)为 1。
  • 和 numpy.random.rand 一样,numpy.random.standard_normal 生成的随机数也是伪随机数。如果需要可重复的随机数序列,可以通过设置随机数生成器的种子来实现。
  • 标准正态分布在实际应用中非常广泛,例如在统计学、机器学习、信号处理等领域中经常需要用到。通过 numpy.random.standard_normal 函数,你可以方便地生成符合标准正态分布的随机数据。

random.normal 函数

numpy.random.normal 是 NumPy 库中的一个函数,用于从正态分布(也称为高斯分布)中抽取随机样本。正态分布是一个连续概率分布,其中大多数值聚集在均值附近,远离均值的值越来越少。

1函数示例

numpy.random.normal(loc=0.0, scale=1.0, size=None)

参数

  • loc:分布的均值(或“中心”)的浮点值。默认值为 0.0。
  • scale:分布的标准差(或“宽度”或“分散度”)的浮点值。默认值为 1.0。
  • size:输出的形状。如果为 None(默认),则返回一个值。如果为整数,则返回一个形状为 (size,) 的一维数组。如果为形状元组,则返回一个形状为 size 的数组。

返回值

返回一个或多个从正态分布中抽取的随机样本。

2举例说明

1.抽取一个随机样本

import numpy as np  
  
# 从均值为0,标准差为1的正态分布中抽取一个随机样本  
sample = np.random.normal()  
print(sample)

 输出结果:

2.240893199201458

2.抽取多个随机样本

import numpy as np  
  
# 从均值为0,标准差为1的正态分布中抽取5个随机样本  
samples = np.random.normal(size=5)  
print(samples)

输出结果:

[ 1.86755799 -0.97727788  0.95008842 -0.15135721 -0.10321885]

3.抽取具有指定均值和标准差的随机样本 

 

import numpy as np  
  
# 从均值为3,标准差为2的正态分布中抽取3个随机样本  
samples = np.random.normal(loc=3, scale=2, size=3)  
print(samples)

输出结果:

[3.821197   3.28808714 5.90854701]

 4.抽取二维数组的随机样本

import numpy as np  
  
# 从均值为0,标准差为1的正态分布中抽取一个2x3的随机样本数组  
samples = np.random.normal(size=(2, 3))  
print(samples)

输出结果:

[[ 0.76103773  0.12167502  0.44386323]
 [ 0.33367433  1.49407907 -0.20515826]]

这些例子展示了如何使用 numpy.random.normal 函数来从正态分布中抽取随机样本,并可以通过调整 loc 和 scale 参数来改变分布的均值和标准差。size 参数用于指定输出的形状。 

random.uniform函数

numpy.random.uniform 是 NumPy 库中的一个函数,用于从均匀分布中抽取随机样本。均匀分布是一个概率分布,其中所有可能的结果都有相同的概率被选中。

1函数示例

numpy.random.uniform(low=0.0, high=1.0, size=None)

参数

  • low:分布的下界。所有生成的随机数都将大于或等于这个值。默认值为 0.0。
  • high:分布的上界(不包含)。所有生成的随机数都将小于这个值。默认值为 1.0。
  • size:输出的形状。如果为 None(默认),则返回一个值。如果为整数,则返回一个形状为 (size,) 的一维数组。如果为形状元组,则返回一个形状为 size 的数组。

返回值

返回一个或多个从均匀分布中抽取的随机样本。

2举例说明

1.抽取一个随机样本

import numpy as np 


# 从0到1之间的均匀分布中抽取一个随机样本 
sample = np.random.uniform() 
print(sample)

 结果输出:

0.11827442586893322

2.抽取多个随机样本 

 

import numpy as np 


# 从0到1之间的均匀分布中抽取5个随机样本 
samples = np.random.uniform(size=5) 
print(samples)

 输出结果:

[0.63992102 0.14335329 0.94466892 0.52184832 0.41466194]

3.指定分布的范围

import numpy as np 


# 从2到8之间的均匀分布中抽取3个随机样本 
samples = np.random.uniform(low=2, high=8, size=3) 
print(samples)

 输出结果:

[3.58733367 6.64540214 4.73690199]

4.抽取二维数组的随机样本

import numpy as np 


# 从0到1之间的均匀分布中抽取一个2x3的随机样本数组 
samples = np.random.uniform(size=(2, 3)) 
print(samples)

输出结果:

[[0.56843395 0.0187898  0.6176355 ]
 [0.61209572 0.616934   0.94374808]]

这些例子展示了如何使用 numpy.random.uniform 函数来从均匀分布中抽取随机样本。你可以通过调整 low 和 high 参数来改变分布的范围,并使用 size 参数来指定输出的形状。这个函数在需要生成一定范围内随机数的场合非常有用,例如模拟、统计测试等。

  • 17
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Py小趴

整理不易,感谢金主!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值