Чтобы случайным образом взвесить выборку из списка в Python, вы можете использовать различные методы. Вот несколько подходов:
Метод 1. Использование функции random.choices
с весами
import random
my_list = [1, 2, 3, 4, 5]
weights = [0.1, 0.3, 0.2, 0.2, 0.2]
sample = random.choices(my_list, weights, k=1)
print(sample)
Метод 2: использование функции numpy.random.choice
с вероятностями
import numpy as np
my_list = [1, 2, 3, 4, 5]
probabilities = [0.1, 0.3, 0.2, 0.2, 0.2]
sample = np.random.choice(my_list, size=1, p=probabilities)
print(sample)
Метод 3: использование функции random.choices
с совокупными весами
import random
my_list = [1, 2, 3, 4, 5]
weights = [0.1, 0.3, 0.2, 0.2, 0.2]
cumulative_weights = [sum(weights[:i+1]) for i in range(len(weights))]
rand_num = random.random()
sample = my_list[bisect.bisect(cumulative_weights, rand_num)]
print(sample)
Эти методы позволяют случайным образом взвешивать выборку из списка на основе заданных вероятностей или весов. Выберите метод, который лучше всего соответствует вашим потребностям.