Método sample del módulo random
El método sample del módulo random
devuelve una muestra aleatoria de elementos de
una secuencia. En el primer parámetro
del método indicamos la secuencia, en
el segundo parámetro - la cantidad de elementos,
que queremos seleccionar aleatoriamente.
En el tercer parámetro opcional con nombre
counts podemos establecer una lista
de elementos para repetición. Esto permite
aumentar la probabilidad de muestreo de ciertos
elementos. Tenga en cuenta que
el tercer parámetro del método se agregó solo
a partir de la versión Python 3.9.
Sintaxis
import random
random.sample(secuencia, cuenta, [counts=repetición])
Ejemplo
Obtengamos tres elementos aleatorios de una lista:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Resultado de la ejecución del código:
[2, 1, 5]
Ejemplo
Intentemos también tomar una muestra de elementos aleatorios de una tupla:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Resultado de la ejecución del código:
[3, 2]
Ejemplo
También se pueden seleccionar elementos de
una secuencia generada por la
función range:
print(random.sample(range(0, 10), 3))
Resultado de la ejecución del código:
[0, 8, 9]
Ejemplo
Ahora tomemos una lista y usando el
parámetro counts asignemos repeticiones
para cada elemento de la lista. En nuestro
caso, que el primer elemento se repita
dos veces, el segundo - tres, y el tercero - cuatro
veces. También es necesario especificar el nombre del parámetro
k para la salida de la cantidad de elementos:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Este código es equivalente al siguiente:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # lista efectiva
print(random.sample(lst, 3))
Ejemplo
Ahora intentemos tomar elementos de un conjunto:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Nos devolverá el siguiente error:
[5, 2]
DeprecationWarning: Sampling from a set deprecated
since Python 3.9 and will be removed in a subsequent version.
print(random.sample(st, 2))
Esto se debe a que desde la versión Python
3.9 no está prevista la posibilidad
de tomar muestras de un conjunto.