对比python的各种随机数(random和np.random)

一、python系统自带的random

import random
a=random.randint(1,10)   #在a,b之间随机产生一个正数
c=random.randrange(1,10) #产生啊,b之间的随机正数
b=random.random()        #产生0,1之间的随机浮点数
d=random.uniform(1,10)   #产生a,b之间的随机浮点数

lst=[1,2,3,4,5,6,7,8]

e=random.choice(lst)     #在给定的序列中随机选择一个
f=random.shuffle(lst)    #将一个序列随机打乱

lst1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]   
slice = random.sample(lst1, 5)  #从list中随机获取5个元素,作为一个片断返回   
print(slice) 

print(a,b,c,d,e)
print(lst)

# number=0
# while(number<6):
#     random.seed(100)
#     print(random.uniform(10,20)) 
#     number+=1


# random.seed(11)
# print(random.uniform(10,20))
# random.seed(12)
# print(random.uniform(10,20))
# random.seed(13)
# print(random.uniform(10,20))
# random.seed(14)
# print(random.uniform(10,20))
# random.seed(15)
# print(random.uniform(10,20))


"""seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,
则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,
此时每次生成的随机数因时间差异而不同。
但是注意一个问题:random.seed(something)只能是一次有效。
即每次后面的随机数只一次,
其实仔细想想也很自然,如果不是一次有效,比如说是一直有效,那岂不是会影响到后续的代码中随机数的选取?
"""

#下面是一些比较常见的产生符合某种分布的随机数

m=random.normalvariate(5,1)  #5是期望,1是标准差
print(m)
random.betavariate(alpha=1,beta=2)  #beta分布
random.expovariate()                #exponential 指数分布
random.gammavariate()               #gamma 分布
random.gauss()                      # 高斯分布
random.lognormvariate()             #log normal 分布
random.normalvariate()              #正态分布
random.paretovariate()              #pereto 分布

二、numpy的随机数

a=random.rand(2,3)                    #产生0,1之间的随机浮点数
print(a)
d=random.random(size=(2,3))           #产生0,1之间的随机浮点数
print(d)
b=random.randint(1,10,size=(2,3))     #产生指定范围之间的随机正数
print(b)
c=random.randn(2,3)                   #产生的是“标准”正态分布,即高斯分布
print(c)
e=random.normal(scale=3,size=(2,3))   #产生一般的正态分布

numpy.random.shuffle(sequence)       #随机打乱序列
numpy.random.choice()                #随机选取序列的一个元素,只选取一个元素
numpy.random.binomial()              #二项分布采样


numpy.random.RandomState()           #指定种子值
numpy.random.seed()                  #指定种子值,同上面是一样的

"""numpy里面也提供了产生各种分布的随机数函数,这里就不
一一列举
"""

三、区别

主要的区别是numpy.random模块里面提供的函数种类更多,而且大部分是以产生“ 数组对象 ”的,即可以指定size,而random模块因为是系统自带的,大多只是产生一个数。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值