详述numpy中的np.random.rand()、np.random.randn()、np.random.randint()、np.random.uniform()函数的用法

本文详细介绍了numpy库中四个常用的随机数生成函数:`np.random.rand()`、`np.random.randn()`、`np.random.randint(low, high, size, dtype)`和`np.random.uniform(low, high, size)`。这些函数在机器学习和深度学习中广泛应用,分别用于生成服从不同分布的随机数。`rand()`和`randn()`分别生成[0,1)区间内均匀分布和标准正态分布的随机数,而`randint()`和`uniform()`则可以生成指定范围内的整数和浮点数随机样本。通过调整参数,可以得到不同形状和分布的随机数矩阵。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    目录

 (一)np.random.rand()

 (二)np.random.randn()

 (三)np.random.randint(low,high,size,dtype)

 (四)np.random.uniform(low,high,size)


        引言:在机器学习还有深度学习中,经常会用到这几个函数,为了便于以后熟练使用,现在对这几个函数进行总结。

(一)np.random.rand()

        该函数括号内的参数指定的是返回结果的形状,如果不指定,那么生成的是一个浮点型的数;如果指定一个数,那么生成的是一个numpy.ndarray类型的数组;如果指定两个数字,那么生成的是一个二维的numpy.ndarray类型的数组。如果是两个以上的数组,那么返回的维度就和指定的参数的数量个数一样。其返回结果中的每一个元素是服从0~1均匀分布的随机样本值,也就是返回的结果中的每一个元素值在0-1之间

举例说明:

import numpy as np
mat = np.random.rand()
print(mat)
print(type(mat))
mat = np.random.rand(2)
print(mat)
print(type(mat))
mat = np.random.rand(3, 2)
print(mat)
print(type(mat))

结果为:注意我用红框框起来的一组对应两个print输出,可对应程序看结果。

(二)np.random.randn()

        该函数和rand()函数比较类似,只不过运用该函数之后返回的结果是服从均值为0,方差为1的标准正态分布,而不是局限在0-1之间,也可以为负值,因为标准正态分布的曲线是关于x轴对阵的。其括号内的参数如果不指定,那么生成的是一个浮点型的数;如果指定一个数,那么生成的是一个numpy.ndarray类型的数组;如果指定两个数字,那么生成的是一个二维的numpy.ndarray类型的数组。和rand()相比,除了元素值不一样,其他的性质是一样的。

举例说明:

import numpy as np
mat = np.random.randn()
print(mat)
print(type(mat))
mat = np.random.randn(2)
print(mat)
print(type(mat))
mat = np.random.randn(3, 2)
print(mat)
print(type(mat))

结果为:

 (三)np.random.randint(low,high,size,dtype)

        该函数中包含了几个参数,其具体含义为:

low:生成的元素值的最小值,即下限,如果没有指定high这个参数,则low为生成的元素值的最大值。

high:生成的元素值的最大值,即上限。

size:指定生成元素值的形状,也就是数组维度的大小。

dtype:指定生成的元素值的类型,如果不指定,默认为整数型

返回结果:返回值是一个大小为size的数组,如果指定了low和high这两个参数,那么生成的元素值的范围为[low,high),不包括high;如果不指定high这个参数,则生成的元素值的范围为[0,low)。如果不指定size这个参数,那么生成的元素值的个数只有一个。

举例说明:

import numpy as np
# 指定一个参数low
mat = np.random.randint(low=1)
print(mat)
print(type(mat))

# 指定low和high,生成一个[low,high)的元素值
mat = np.random.randint(low=1, high=5)
print(mat)
print(type(mat))

# 指定size大小,生成一个三行三列的二维数组,元素个数为3x3=9个
mat = np.random.randint(low=2, high=10, size=(3, 3))
print(mat)
# 查看默认元素值的类型
print(type(mat[0][0]))

mat = np.random.randint(low=2, high=10, size=(3, 3), dtype=np.uint8)
print(mat)
print(type(mat[0][0]))

结果为:

 (四)np.random.uniform(low,high,size)

参数说明:

low:生成元素值的下界,float类型,默认值为0
high:生成元素值的上界,float类型,默认值为1
size:输出样本的数目,可以指定一个值,也可指指定大于等于两个值
返回对象:ndarray类型,形状为size中的数值指定,其元素个数为size指定的参数的乘积

        我们前面已经说过了rand()这个函数,它返回的元素值是服从0-1的均匀分布,那如果不想要生成的是0-1范围内的均匀分布,想要其它范围内的均匀分布怎么办呢。

        uniform()实现了这个功能,它可以生成服从指定范围内的均匀分布的元素。其返回值的元素类型为浮点型。需注意的是元素值的范围包含low,不包含high。

举例说明:

import numpy as np
# 指定一个参数low
mat = np.random.uniform()
print(mat)
print(type(mat))

# 指定low和high,生成一个[low,high)的元素值
mat = np.random.uniform(low=5, high=10)
print(mat)
print(type(mat))

# 指定size大小,生成一个三行三列的二维数组,元素个数为3x3=9个
mat = np.random.uniform(low=2, high=10, size=(3, 3))
print(mat)
# 查看默认元素值的类型
print(type(mat[0][0]))

mat = np.random.uniform(low=2, high=10, size=(3, 3, 2))
print(mat)
print(type(mat[0][0][0]))

结果为:

        总结:以上就是常用的随机数生成函数,具体用哪一个,可根据自己需求,想要生成什么随机数,那就使用什么样的函数。

编写不易,转载请注明出处!

np.random.rand()是一个NumPy函数,用于生成服从0~1均匀分布的随机样本值。它返回一个或一组随机样本值,取值范围是[0,1),不包括1。 举例说明: ```python import numpy as np mat = np.random.rand() print(mat) # 输出一个0~1之间的随机样本值 print(type(mat)) # 输出mat的数据类型 mat = np.random.rand(2) print(mat) # 输出一个包含两个元素的随机样本值的数组 print(type(mat)) # 输出mat的数据类型 mat = np.random.rand(3, 2) print(mat) # 输出一个3行2列的随机样本值的二维数组 print(type(mat)) # 输出mat的数据类型 ``` 在深度学习的Dropout正则化方法中,np.random.rand()可以用于生成dropout随机向量。例如,可以使用如下代码生成一个与输入矩阵al形状相同的dropout随机向量: ```python dl = np.random.rand(al.shape<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Numpynp.random.rand()np.random.randn() 用法和区别详解](https://download.csdn.net/download/weixin_38546622/13706514)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [np.random.rand()函数](https://blog.csdn.net/qq_40130759/article/details/79535575)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [详述numpy中的np.random.rand()np.random.randn()np.random.randint()np.random.uniform()函数用法](https://blog.csdn.net/BaoITcore/article/details/125273828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值