np.random.random()和np.random.randn
时间: 2023-10-31 08:54:38 浏览: 96
np.random.random()和np.random.randn()是NumPy库中用于生成随机数的函数。它们的作用和使用方法略有不同。
np.random.random()函数用于生成服从“0~1”均匀分布的随机样本值。该函数的语法为np.random.random(d0,d1,d2……dn),可以返回一个或一组服从均匀分布的随机样本值。这些随机样本的取值范围是[0,1),不包括1。在深度学习的Dropout正则化方法中,np.random.random()函数常用于生成dropout随机向量。例如,可以使用如下语句生成一个与数组al相同形状的dropout随机向量:dl = np.random.random(al.shape) < keep_prob。
np.random.randn()函数用于生成服从标准正态分布的随机样本值。该函数的语法为np.random.randn(d0,d1,d2……dn),可以返回一个或一组服从标准正态分布的随机样本值。标准正态分布是以0为均值、以1为标准差的正态分布。在生成多维数组时,可以通过传入多个参数来指定数组的维度。需要注意的是,当函数没有参数时,返回一个浮点数;当函数有一个参数时,返回一个秩为1的数组;当函数有两个及以上参数时,返回对应维度的数组。在实际应用中,np.random.randn()函数常用于生成服从正态分布的随机数据。
总结:np.random.random()函数用于生成服从均匀分布的随机样本值,而np.random.randn()函数用于生成服从标准正态分布的随机样本值。
相关问题
np.random.random和np.random.randn区别
np.random.random和np.random.randn都是numpy中用于生成随机数的函数,但它们的生成方式不同。
np.random.random用于生成[0.0, 1.0)之间的随机浮点数,生成的随机数服从均匀分布。该函数的参数是一个整数或一个元组,用于指定生成随机数的维度。
np.random.randn用于生成服从标准正态分布(均值为0,方差为1)的随机浮点数,生成的随机数服从正态分布。该函数的参数也是一个整数或一个元组,用于指定生成随机数的维度。
简而言之,np.random.random生成的是均匀分布的随机数,而np.random.randn生成的是正态分布的随机数。
np.random.rand,np.random.randn,np.random.random
`np.random.rand`, `np.random.randn`, 和 `np.random.random` 都是 NumPy 中用于生成随机数的函数:
1. `np.random.rand(size)`:生成一个给定形状(size)的浮点数数组,其值均匀分布在 `[0, 1)` 区间内。所有元素都是独立同分布(i.i.d.)的,即彼此之间相互独立,且服从标准正态分布(均值为0,标准差为1)。
2. `np.random.randn(size)`:与 `rand` 类似,也是生成浮点数数组,但是其元素默认是标准正态分布的随机数,即均值为0,标准差为1。所以即使没有明确指定范围,生成的数也通常会被认为是在 [-3, 3] 左右的范围内。
3. `np.random.random(size)`:同样生成一个给定形状的浮点数数组,数组中的每一个元素都在 `[0, 1)` 范围内,与 `rand` 相似,也是 i.i.d. 的。
这些函数广泛应用于数据预处理、模拟实验等场景中,帮助创建随机样本。如果你需要生成特定范围内的非均匀分布随机数,可以结合其他技巧如 `a * rand() + b` 来调整生成值的范围。
阅读全文