import random
random.seed(5)
print(random.randint(1, 100))
80
def gauss(self, mu, sigma):
pass
mu
是平均值sigma
是标准差
下面的代码生成10000个符合平均值为3标准为1的随机数并绘制出直方图。
import random
nums = []
for i in range(10000):
value = random.gauss(3, 1)
nums.append(value)
print(nums[:10])
[1.4060011310734861, 3.2534874072262148, 2.592252538916622, 3.0356679064704792, 2.9064481643333417, 3.586646311256348, 3.692808027813995, 2.5132998545243956, 2.1727826070924174, 3.3069295146843647]
import random
random.randint(0, 100)
32
random.randrange(stop)
random.randrange(start, stop[, step])
ange(stop)
产生一个从0到 stop-1
的整数序列 seq
,
random.randrange(stop)
从 seq
里随机选择一个数做为返回值,
random.randrange(stop)
等价于 random.randint(0, stop-1)
。
range(start, stop[, step])
以 step
为步长从start开始到stop结束产生一个序列 seq
,
random.randrange(start, stop[, step])
从 seq
里随机选择一个数做为返回值。
示例代码:
random.randrange(100)
94
random.randrange(0, 100, 3)
66
random.randrange(0, 100, 3)
99
random.getrandbits(3)
0
random.getrandbits(3)
6
random.getrandbits(3)
3
random.getrandbits(3)
6
random.getrandbits(3)
7
random.getrandbits(3)
1
random.getrandbits(3)
5
random.getrandbits(3)
0
import random
random.random()
0.9009004917506227
random.uniform(1.2, 4.5)
1.5735796833553763
random.uniform(4.5, 1.2)
2.95207214231886
random.uniform(4.5, 4.5)
4.5
uniform
对a,b两个参数的大小关系没有要求,通常人们会猜测a应当小于等于b,但实际上a可以大于b。
random.choice([1, 4, 5, 6])
1
random.choices(population, weights=None, *, cum_weights=None, k=1)
random.choices
方法从序列 population
中随机选取 k
个对象,
如果指定了 weights
,则根据权重返回对象,权重越大,
被随机选中返回的概率越大。返回的k个随机对象可以有重复对象,这一点一定要注意。
参数解释:
population
序列weights
相对权重cum_weights
累积权重k
,返回对象的个数
示例代码:
- 不设置权重
import random
fruits = ['苹果', '香蕉', '火龙果', '葡萄']
lst = random.choices(fruits, k=2)
print(lst)
['香蕉', '香蕉']
- 设置相对权重
import random
fruits = ['苹果', '香蕉', '火龙果', '葡萄']
lst = random.choices(fruits, weights=[5, 2, 2, 1], k=2)
print(lst)
['苹果', '苹果']
weights
里的对象个数必须与 fruits
里的对象个数相同,
weights
表示的是各项之间被选中的概率相对比值,苹果被随机选中的概率是50%,
计算方法是 5/(5+2+2+1)
。
- 设置累积权重
import random
fruits = ['苹果', '香蕉', '火龙果', '葡萄']
lst = random.choices(fruits, cum_weights=[5, 7, 9, 10], k=2)
print(lst)
['葡萄', '苹果']
def sample(self, population, k):
参数说明:
population
序列k
抽样个数
如果 population
本身就包含了重复元素,sample
方法每次返回的对象都是样本中可能的选择。
import random
fruits = ['苹果', '香蕉', '火龙果', '葡萄']
lst = random.sample(fruits, k=2)
print(lst)
['苹果', '火龙果']
import random
lst = [i for i in range(10)]
random.shuffle(lst)
print(lst)
[4, 3, 2, 0, 9, 7, 1, 5, 6, 8]
经 shuffle
方法处理后,lst
列表变得无序。