Python random
老是忘记random中每个函数之间的区别,而且常常跟numpy里的random也经常搞混,因此还是写篇文章记一下吧。
random模块
choice和sample
python中random.choice()可以从给定的可迭代对象中随机挑选出一个。
而python中random.sample()方法则可以随机地从给定的可迭代对象中提取出N个不同的元素,列表的维数没有限制。(即第二参数给出个数N)
1 | import random |
shuffle
正如字面所示,也就是打乱的意思
1 | a=[1,3,5,6,7] # 将序列a中的元素顺序打乱 |
numpy中的random
numpy.random.choice(a, size=None, replace=True, p=None)
- a : 如果是一维数组,就表示从这个一维数组中随机采样;如果是int型,就表示从0到a-1这个序列中随机采样。
- size : 采样结果的数量,默认为1.可以是整数,表示要采样的数量;也可以为tuple,如(m, n, k),则要采样的数量为m * n * k,size为(m, n, k)
- replace : boolean型,采样的样本是否要更换?这个地方我不太理解,测了一下发现replace指定为True时,采样的元素会有重复;当replace指定为False时,采样不会重复。
- p : 一个一维数组,制定了a中每个元素采样的概率,若为默认的None,则a中每个元素被采样的概率相同。
1 | choice(a[, size, replace, p]) |
np.random.randint
1 | np.random.randint(2,5,size=(2,3)) |
np.random.rand
1 | 3,2) np.random.rand( |
▲需要注意的是np.random.randint和random.randint的区间不同,前者左闭右开(),后者左右都是闭区间[]▲
Author: Mrli
Link: https://nymrli.top/2019/09/27/Python-random/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.