Pythonrandom库函数
⽬录
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()函数
⽣成给定⽐特长的随机整数
>>&andbits(16)
输出结果:37885
numpy中的random函数
批量产⽣随机数
random库中函数每次只能⽣成单个随机数,⽽使⽤numpy库可以批量产⽣随机数。⽤法如下
from numpy import random
r=random.random()
r=random.random(size=10000)python生成1到100之间随机数
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])
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论