📜  Python随机模块(1)

📅  最后修改于: 2023-12-03 15:19:36.612000             🧑  作者: Mango

Python随机模块

Python标准库中的random模块提供了各种用于生成随机数据的函数。无论是需要生成随机数、随机选择列表中的元素,还是进行概率分布取样,random模块都能满足你的需求。

1. 生成随机数
1.1 生成随机整数

使用random.randint(a, b)函数可以生成一个位于区间 [a, b] 内的随机整数。

import random

random_int = random.randint(1, 10)
print(random_int)

生成的随机整数将会包含ab

1.2 生成随机浮点数

使用random.random()函数可以生成一个介于 [0, 1) 区间内的随机浮点数。

import random

random_float = random.random()
print(random_float)
1.3 生成随机浮点数(指定范围)

使用random.uniform(a, b)函数可以生成一个位于区间 [a, b] 内的随机浮点数。

import random

random_float = random.uniform(0.5, 2.5)
print(random_float)
1.4 生成随机布尔值

使用random.choice([True, False])函数可以随机选择一个布尔值。

import random

random_bool = random.choice([True, False])
print(random_bool)
2. 随机选择
2.1 随机选择列表中的元素

使用random.choice(seq)函数可以从给定的序列 seq 中随机选择一个元素。

import random

my_list = ['apple', 'banana', 'cherry']
random_element = random.choice(my_list)
print(random_element)
2.2 随机打乱列表元素顺序

使用random.shuffle(seq)函数可以随机打乱给定序列 seq 中元素的顺序。

import random

my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)
3. 概率分布取样
3.1 从指定概率分布中取样

使用random.choices(population, weights=None, k=1)函数可以从给定的population中按照指定的概率分布取样。

import random

fruits = ['apple', 'banana', 'cherry', 'durian']
weights = [0.4, 0.3, 0.2, 0.1]
random_fruit = random.choices(fruits, weights, k=1)
print(random_fruit)

以上示例会按照 [0.4, 0.3, 0.2, 0.1] 的概率分布从 ['apple', 'banana', 'cherry', 'durian'] 中取样一个元素。

3.2 从范围内按照指定的概率分布取样

使用random.choices(population, cum_weights=None, k=1)函数可以从给定的population中按照指定的概率分布取样。不同于weights参数,cum_weights参数是累计权重,即权重的累积和。

import random

population = [1, 2, 3, 4, 5]
cum_weights = [0.1, 0.3, 0.6, 0.9, 1.0]
random_choice = random.choices(population, cum_weights, k=1)
print(random_choice)

以上示例会按照 [0.1, 0.2, 0.3, 0.4, 0.5] 的概率分布从 [1, 2, 3, 4, 5] 中取样一个元素。

总结

以上是random模块的一些常见用法。使用random模块,你可以生成随机数、随机选择列表元素,甚至可以从指定的概率分布中取样。这是一个非常有用的模块,适用于各种需要随机数据的情景。