1. np.random.rand()

其返回结果中的每一个元素是服从0~1均匀分布的随机样本值;
如果不指定,那么生成的是一个浮点型的数;如果指定一个数,那么生成的是一个numpy.ndarray类型的数组;如果指定两个数字,那么生成的是一个二维的numpy.ndarray类型的数组

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

0.24254264201299813
<class ‘float’>
[0.38500189 0.65799509 0.44822842]
<class ‘numpy.ndarray’>
[[0.64660005 0.57984781]
[0.97418819 0.01945212]]
<class ‘numpy.ndarray’>

2.np.random.randn()

返回的结果是服从均值为0,方差为1的标准正态分布,而不是局限在0-1之间,也可以为负值,基本同np.random.rand()

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

-0.48464093525285606
[1.05917692 1.44303463]
[[-0.92418859 0.41446411]
[-0.48868694 -0.1957662 ]
[-2.44048022 -0.3223806 ]]

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

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

import numpy as np
# 指定一个参数low
mat = np.random.randint(low=2)
print(mat)
 
# 指定low和high,生成一个[low,high)的元素值
mat = np.random.randint(low=1, high=8)
print(mat)
 
# 指定size大小,生成一个三行三列的二维数组,元素个数为3x3=9个
mat1 = np.random.randint(low=2, high=10, size=(3, 3))
# 指定size大小,生成一个[2,10),元素个数为3个的数组
mat2 = np.random.randint(2, 10, 3)
print(mat1)
print(mat2) 
mat = np.random.randint(low=2, high=10, size=(3, 3), dtype=np.uint8)
print(mat)
print(type(mat[0][0]))

1
5
[[6 4 8]
[8 6 3]
[5 7 9]]
[9 7 6]
[[5 8 6]
[3 5 3]
[3 2 9]]
<class ‘numpy.uint8’>

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

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

import numpy as np
# 指定一个参数low
mat = np.random.uniform()
print(mat)
 
# 指定low和high,生成一个[low,high)的元素值
mat = np.random.uniform(low=6, high=8)
print(mat)
 
# 指定size大小,生成一个两行三列的二维数组,元素个数为2x3=6个
mat = np.random.uniform(low=2, high=6, size=(2, 3))
print(mat)

0.4712262884518643
7.741244039621115
[[4.55407389 4.81814159 4.44364589]
[3.51444143 2.23264885 5.90593952]]

5.np.random.choice

np.random.choice 是 NumPy 库中的一个函数,用于从给定的一维数组中随机抽取元素。这个函数可以根据给定的概率分布进行抽样,也可以进行有放回或者无放回抽样。

下面是 np.random.choice 函数的基本语法:

numpy.random.choice(a, size=None, replace=True, p=None)

参数说明:

a:一维数组,表示抽样的对象。
size:抽样的结果的形状,默认为单个值。
replace:是否进行有放回抽样,True 表示有放回抽样,False 表示无放回抽样。
p:数组中每个元素被抽取的概率,如果不指定,则默认为均匀分布。

示例:

import numpy as np

# 从0到9中随机抽取3个数
a = np.random.choice(10, 3)
print(a)  # 可能输出 [4 9 8]

# 从指定的列表中根据指定的概率进行抽样
b = np.random.choice(['a', 'b', 'c'], 5, p=[0.5, 0.2, 0.3])
print(b)  # 可能输出 ['a' 'c' 'b' 'a' 'a']

np.random.choice 函数在进行数据抽样、随机生成数据等场景中非常有用,能够灵活地满足不同的抽样需求。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐