在数据分析,数据清洗,数据集处理中,除了使用,咱们熟悉的
numpy.random
模块来生成随机数,或者随机采样,事实上,python 标准库也提供了 random 模块,若是不想,仅仅由于使用随机数,而单独导入numpy
时,标准库提供的random
模块,不失为一种,轻量级替代方案,而且二者使用起来几乎同样。html
random 是 python 标准库模块,随 python 一块儿安装,无需单独安装,可直接导入。python
import random
复制代码
random()
生成一个位于半开放区间 [0, 1) 的浮点数,几乎全部random
模块的方法的实现,都依赖于 random()
。git
random.random()
复制代码
0.9111245252327139
复制代码
返回随机整数 N 知足 a <= N <= b。至关于 randrange(a, b+1)。github
random.randint(0, 10)
复制代码
8
复制代码
从 range(start, stop, step)
返回一个随机选择的元素。 这至关于 choice(range(start, stop, step))
,但实际上并无构建一个 range 对象。微信
random.randrange(0, 10, 2)
复制代码
2
复制代码
从非空序列 seq 返回一个随机元素。 若是 seq 为空,则引起 IndexError。dom
random.choice([0, 1, 2, 3, 4, 5])
复制代码
2
复制代码
从population中选择替换,返回大小为 k 的元素列表。 若是 population 为空,则引起 IndexError。函数
若是指定了 weight 序列,则根据相对权重进行选择。 或者,若是给出 cum_weights 序列,则根据累积权重(可能使用 itertools.accumulate() 计算)进行选择。 例如,相对权重[10, 5, 30, 5]
至关于累积权重[10, 15, 45, 50]
。 在内部,相对权重在进行选择以前会转换为累积权重,所以提供累积权重能够节省工做量。网站
random.choices([0, 1, 2, 3, 4, 5], k=2)
复制代码
[0, 2]
复制代码
random.choices([0, 1, 2, 3, 4, 5], cum_weights=[10, 20, 30, 40, 50, 60], k=3)
复制代码
[4, 4, 4]
复制代码
将序列 x 随机打乱位置。spa
可选参数 random 是一个0参数函数,在 [0.0, 1.0) 中返回随机浮点数;默认状况下,这是函数 random() 。code
要改变一个不可变的序列并返回一个新的打乱列表,请使用sample(x, k=len(x))
。
a = [0, 1, 2, 3, 4, 5]
random.shuffle(a)
a
复制代码
[5, 2, 3, 0, 1, 4]
复制代码
返回从整体序列或集合中选择的惟一元素的 k 长度列表。 用于无重复的随机抽样。
random.sample([1, 2, 3, 4, 5, 6], k=2)
复制代码
[1, 3]
复制代码
高斯分布。 mu 是平均值,sigma 是标准差。
[random.gauss(0, 1) for i in range(10)]
复制代码
[1.232295558291998,
-0.23589397085653746,
-1.4190307151921895,
0.18999908858301912,
0.780671045104774,
0.041722424850158674,
0.7392269754813698,
1.4612049925568829,
0.09647538110312114,
-0.32525720572670025]
复制代码
如下为 python 官方 github 上,random 模块的部分源码,帮助了解 random 模块的基本结构,以及本文介绍的实用方法的源码申明。
random.py:
class Random(_random.Random):
def seed(self, a=None, version=2):
pass
def randrange(self, start, stop=None, step=1, _int=int):
pass
def randint(self, a, b):
pass
def choice(self, seq):
pass
def shuffle(self, x, random=None):
pass
def sample(self, population, k):
pass
def choices(self, population, weights=None, *, cum_weights=None, k=1):
pass
def gauss(self, mu, sigma):
pass
...
_inst = Random()
seed = _inst.seed
random = _inst.random
randrange = _inst.randrange
randint = _inst.randint
choice = _inst.choice
shuffle = _inst.shuffle
sample = _inst.sample
choices = _inst.choices
gauss = _inst.gauss
...
复制代码
坚持写专栏不易,若是以为本文对你有帮助,记得点个赞。感谢支持!
微信扫描二维码 获取最新技术原创