python random库函数_Python random库函数

random库介绍

random库用于生成伪随机数,包含两类函数。常用的有8个:

基本随机函数: seed(), random()

扩展随机函数:randint(), uniform(), randrange(), choice(), shuffle(), getrandbits()

seed()函数

改变随机数生成器的种子,若不提供参数则默认使用当前系统时间。

注意:本函数没有返回值。

import random

print (random.random())

print (random.random())

for i in range(3):

random.seed(0)

print (random.random())

结果如下,同一种子产生的随机数序列是相同的,即随机数可以复现。

0.9669973055076426

0.17528634506952256

0.8444218515250481

0.8444218515250481

0.8444218515250481

下例能更好地展示随机数序列的性质,在相同种子的情况下完全一致(另外由于算法实际上产生的是伪随机数,在大约几万位后会发生重复,进入与前面位相同的循环。 )。seed设置后只生效一次,再使用要重新设置。

>>> random.seed(2)

>>> [’%.2f’ % random.random() for i in range(7)]

[’0.96’, ’0.95’, ’0.06’, ’0.08’, ’0.84’, ’0.74’, ’0.67’]

>>> [’%.2f’ % random.random() for i in range(7)]

[’0.31’, ’0.61’, ’0.61’, ’0.58’, ’0.16’, ’0.43’, ’0.39’]

>>> random.seed(2)

>>> [’%.2f’ % random.random() for i in range(7)]

[’0.96’, ’0.95’, ’0.06’, ’0.08’, ’0.84’, ’0.74’, ’0.67’]

random()函数

产生[0,1)之间的随机浮点数

randint()函数

产生[a,b]中一个整型随机数

print(random.randint(a,b))

randrange()函数

生成一个[m,n)之间以k为步长的随机整数

print(random.randrange(1,100,2)) #生成从1到100的间隔为2的随机整数

uniform()函数

生成一个[a,b]之间的随机小数

print(random.uniform(2,7.3)) #产生2到7.3之间的随机浮点数,区间可以不是整数

choice()函数

在字符串中选出随机字符

print (random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()'))

shuffle()函数

把给定列表中的元素打乱顺序

items = [1,2,3,4,5,6,7,8,9,0]

print (random.shuffle(items))

#输出结果是乱序的数字

getrandbits()函数

生成给定比特长的随机整数

>>>random.getrandbits(16)

输出结果:37885

numpy中的random函数

批量产生随机数

random库中函数每次只能生成单个随机数,而使用numpy库可以批量产生随机数。用法如下

from numpy import random

r=random.random()

r=random.random(size=10000)

r=random.uniform(-1,10)

r=random.uniform(-1,10,size=1000)

注意区分两者不同

两个库中randint()函数生成整数的范围不同!

numpy库中与原函数有相同功能的函数是numpy.random.random_integers(该函数在最新的numpy版本中已被替代,建议使用randint函数)

>>> import random

>>> r = random . randint (1, 5) # 1 <= r <= 5

>>> import numpy as np

>>> r = np. random . randint (1, 5, 10)

>>> r # 1 <= r < 5

array ([2 , 3, 2, 1, 1, 2, 2, 4, 4, 3])

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值