在
python
数据分析的学习和应用过程中,经常需要用到
numpy
的随机函数,由于随机函数
random
的功能比较多,经常会混淆或记不住,下面我们一起来汇总学习下。
1 numpy.random.rand()
numpy.random.rand(d0,d1,…,dn)
• rand
函数根据给定维度生成
[0,1)
之间的数据,包含
0
,不包含
1
• dn
表格每个维度
•
返回值为指定维度的
array
import numpy as np
np.random.rand(4,2)
np.random.rand(4,3,2)
运行结果:
2 numpy.random.randn()
numpy.random.randn(d0,d1,…,dn)
• randn
函数返回一个或一组样本,具有标准正态分布。
• dn
表格每个维度
•
返回值为指定维度的
array
#当没有参数的时候返回为一个随机单数据
print(np.random.randn())
print(np.random.randn(4,2))
print(np.random.randn(4,3,2))
运行结果:
![](https://img-blog.csdnimg.cn/659c305fbfe6420b9c998fdf5d22ae3a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bel5Lia5LqS6IGU572R,size_10,color_FFFFFF,t_70,g_se,x_16)
3 numpy.random.randint()
numpy.random.randint(low, high=None, size=None, dtype=‘l’)
•
返回随机整数,范围区间为
[low,high
),包含
low
,不包含
high
•
参数:
low
为最小值,
high
为最大值,
size
为数组维度大小,
dtype
为数据类型,默认的数据类型是
np.int• high 没有填写时,默认生成随机数的范围是
[0
,
low)
print(np.random.randint(1,size=5))
# 返回1个[1,5)时间的随机整数
print(np.random.randint(1,5))
print(np.random.randint(-5,5,size=(2,2)))
print(np.random.random_integers(1,size=5))
运行结果:
![](https://img-blog.csdnimg.cn/a4103ae66d444fd58b4d2ea7aa1e8543.png)
4 numpy.random.choice()
numpy.random.choice(a, size=None, replace=True, p=None)
•
从给定的一维数组中生成随机数
•
参数:
a
为一维数组类似数据或整数;
size
为数组维度;
p
为数组中的数据出现的概率
• a
为整数时,对应的一维数组为
np.arange(a)
print(np.random.choice(5, 3, replace=False))
print(np.random.choice(5,size=(3,2)))
demo_list = ['huawei', 'vivo','oppo','xiaomi', 'rongyao']
print(np.random.choice(demo_list,size=(3,3)))
demo_list = ['huawei', 'vivo','oppo','xiaomi', 'rongyao']
print(np.random.choice(demo_list,size=(3,3), p=[0.1,0.6,0.1,0.1,0.1]))
demo_list = ['huawei', 'vivo','oppo','xiaomi', 'rongyao']
print(np.random.choice(demo_list,size=(3,3), p=[0.1,0.6,0.1,0.1,0.1]))
运行结果:
5 numpy.random.seed()
• np.random.seed()
的作用:使得随机数据可预测。
•
当我们设置相同的
seed
,每次生成的随机数相同。如果不设置
seed
,则每次会生成不同的随机数
print(np.random.seed(1676))
print(np.random.rand(5))
运行结果: