numpy.random 与 python自带的random 区别
总结:python自带的random函数用于生成随机数,numpy.random用于生成随机数矩阵
一、python自带的random:
-
random.random()
生成0~1的随机浮点数 -
random.uniform(a,b)
生成指定范围的随机浮点数,a<=n<=b -
random.randint(a,b)
生成指定范围的随机整数,a<=n<=b -
random.randrange(start,stop,step)
指定范围内,按step递增的集合中的随机数,start<=n<stop -
randrange(m,n,[,k])
生成一个[m,n)之间以K为步长的随机整数 -
getrandbits(k)
生成一个K比特长的随机整数(转换为十进制的数值范围就是2的K次方)
>>>random.getrandombits(8)
250 #范围:0-255,即2的8次方
- random.sample(a,N);
从a中随机抽N个数
random.sample(range(A,B),N); #表示从[A,B)中随机抽N个数
- choice(seq)
从序列seq中随机选择一个元素
>>>random.choice([1,2,3,4,5,6,7,8,9])
8
- shuffle(seq)
将序列seq中的元素随机排列并返回
二、numpy.random
1. np.random.rand(d0,d1,…,dn)
生成[0,1)之间、维度为(d0,d1,…,dn)的矩阵
2. np.random.randn(d0,d1,…,dn)
类似rand:
生成服从标准正太分布、维度为(d0,d1,…,dn)的矩阵
3. np.random.randint(low[,high,shape,dtype])
①生成维度为shape,取值范围为[low,high)的随机矩阵
dtype为数据类型,默认的数据类型是np.int
②high没有填写时,默认生成随机数的范围是[0,low)
4. shuffle(a)
把矩阵a每行看作一张牌,洗牌,将洗牌后的矩阵赋给a
5. permutation(a)
与shuffle(a)类似,但不改变a
6. choice(a[,shape,replace,p])
从一维数组a中以概率P抽取元素,生成维度为shape的新矩阵,replace表示元素能否重复抽取,默认False
p:每个元素出现的概率
注意:给出P时,replace默认为true