python取随机数的函数_Python常用随机数函数总结

前言

每次用到随机数函数的时候总是记不清哪个函数产生什么类型的随机数,都要现查。因此写了这篇总结文章,以供需要时查阅和复习。

首先,用于生成随机数的模块有两个:

python内置的random模块

numpy.random模块

接下来分别介绍这两个模块中的一些常用函数:

一、python内置的random模块

random.random():产生一个0到1范围内的随机浮点数

random.uniform(a, b):产生一个随机浮点数n,a<= n <= b或者b<=n<=a。(此处a和b的相对大小关系没有限制)

random.randint(a, b):产生一个随机整数n,a<=n<=b。(此处a必须小于b,否则报错)

random.choice(sequence):从序列中随机获取一个元素。sequence指元素的集合,可为元组、列表或者字符串。

random.randrange([start,] stop[, step]):在 指定范围内,按照指定基数递增的集合中 随机获取一个元素

random.sample(sequence, k):从序列中随机选取k个元素组成一个新列表。

random.shuffle(list):将列表中的元素随机排序。注意此函数没有返回值,直接改变list。

举例:

import random # 首先导入random包

# 随机浮点数

print(random.random())

print(random.uniform(10, 20)) # a < b时

print(random.uniform(40, 30)) # a > b时

# 随机整数

print(random.randint(1, 5))

# 随机元素

print(random.choice('abcdef'))

print(random.choice( [1, 3, 5, 'ha'] ))

print(random.choice( (2, 4, 6, 'hey') ))

# 选取某范围内的随机元素

print(random.randrange(2, 10, 2)) # 在[2, 4, 6, 8]中随机选取一个元素,不包括10

print(random.randrange(5)) # 在[1, 2, 3, 4]中随机选取一个元素

# 随机选取

li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(random.sample(li, 5))

tu = (11, 12, 13, 14, 15)

print(random.sample(tu, 2))

s = 'helloworld'

print(random.sample(s, 3))

random.shuffle(li) # 随机打乱li中元素的顺序

print(li)

二、numpy.random模块

1、np.random.rand([d0, d1, ..., dn]):返回[0.0, 1.0]之间的随机浮点数或数组,d0, d1, ...为数组的维度

# [0.0, 1.0]之间的随机浮点数

print(np.random.rand())

# [0.0, 1.0]之间的随机浮点数组

print(np.random.rand(2, 3)) # 2行3列

print(np.random.rand(2, 2, 3)) # 三维数组,维度为(2, 2, 3)

运行结果如下:

619f31e9c0c8

2、np.random.randn([d0, d1, ..., dn]) :返回标准正态分布样本值

# 正态分布随机样本值

print(np.random.randn())

# 正态分布随机样本数组

print(np.random.randn(2, 3)) # 2行3列

print(np.random.randn(2, 2, 3)) # 三维数组,维度为(2, 2, 3)

运行结果如下:

619f31e9c0c8

3、np.random.randint([low,] high[, size]) :返回随机整数,位于半开区间 [low, high)

# 随机整数

print(np.random.randint(10)) # 返回一个小于10的随机整数

# 随机整数数组

print(np.random.randint(5, size=3))

print(np.random.randint(4, size=(2, 3)))

print(np.random.randint(1, 4, size=(3, 3)))

运行结果如下:

619f31e9c0c8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值