Случайная выборка с заменой — распространенная задача в анализе данных и машинном обучении, когда нам нужно многократно выбирать случайные элементы из списка или коллекции, допуская дублирование. В этой статье блога мы рассмотрим различные методы достижения этой цели в Python, приведя примеры кода для каждого подхода.
Методы случайной выборки с заменой:
- Использование функции random.choices():
Функция random.choices() из встроенного модуля случайных чисел позволяет нам выполнять случайную выборку с заменой. Требуется два параметра: популяция (список или коллекция) и количество выборок для отбора. Вот пример:
import random
population = [1, 2, 3, 4, 5]
num_samples = 3
samples = random.choices(population, k=num_samples)
print(samples)
Выход:
[4, 3, 5]
- Использование библиотеки NumPy.
NumPy — это популярная библиотека для научных вычислений на Python, предоставляющая удобный способ выполнения случайной выборки. Функцию np.random.choice() можно использовать для выборки с заменой. Вот пример:
import numpy as np
population = [1, 2, 3, 4, 5]
num_samples = 3
samples = np.random.choice(population, size=num_samples, replace=True)
print(samples)
Выход:
[3 5 1]
- Пользовательская реализация с пониманием списка:
Мы можем создать собственную реализацию случайной выборки с заменой, используя понимание списка и функцию random.randint(). Вот пример:
import random
population = [1, 2, 3, 4, 5]
num_samples = 3
samples = [random.choice(population) for _ in range(num_samples)]
print(samples)
Выход:
[2, 4, 5]
В этой статье мы рассмотрели несколько методов выполнения случайной выборки с заменой в Python. Мы рассмотрели встроенную функцию random.choices(), функцию np.random.choice() библиотеки NumPy и пользовательскую реализацию, использующую понимание списка. В зависимости от вашего конкретного варианта использования и доступных вам библиотек вы можете выбрать метод, который лучше всего соответствует вашим потребностям.