random.sample

Nombre completo
random.sample
Librería
random
Sintaxis

random.sample(population, k, *, counts = None)

Descripción

La función random.sample devuelve una lista de k elementos extraídos sin repetición de la secuencia population. Es decir, devuelve una muestra de dicha secuencia. Si population contiene elementos repetidos, cada uno de ellos es susceptible de ser escogido por separado como parte de la muestra.

Los elementos repetidos pueden ser especificados uno por uno, o mediante el parámetro counts. Éste, de existir, deberá contener la frecuencia absoluta de cada uno de los elementos de population, lo que supone que el número de elementos de population y de counts deberá coincidir. Así, por ejemplo, el siguiente código:

random.sample(["A", "B", "C"], k = 2, counts = [3, 2, 1])

...es equivalente a:

random.sample(["A", "A", "A", "B", "B", "C"], k = 2)

Para obtener una muestra de un rango de números se recomienda usar la función range como argumento (véase ejemplo más adelante).

Parámetros
  • population: Secuencia de la que extraer la muestra sin repetición.
  • k: Número de elementos a extraer.
  • counts: (Opcional) Frecuencias absolutas de los elementos de population.
Resultado

La función random.sample devuelve una lista.

Ejemplos

Podemos extraer una muestra compuesta por dos días distintos de la semana con el siguiente código:

días = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"]
random.sample(días, 2)
['Viernes', 'Sábado']

Si nuestra población es la siguiente:

population = ["A", "A", "A", "B", "B", "C"]

...podríamos extraer una muestra de dos elementos sin repetición con el siguiente código:

random.sample(population, 2)
['C', 'B']

...o indicando como población los valores únicos y su frecuencia absoluta:

random.sample(["A", "B", "C"], 2, counts = [3, 2, 1])
['A', 'B']

Si deseamos extraer una muestra de, por ejemplo, tres números entre el 1 y el 20, ambos incluidos, podríamos obtenerla pasando como argumento la función range:

random.sample(range(1, 21), 3)
[10, 3, 8]

Desde la versión 3.9, los conjuntos deberán ser convertidos a listas si queremos extraer una muestra de ellos:

s = set([1, 2, 3, 4, 5])
random.sample(list(s), 2)
[3, 5]
Enviado por admin el Jue, 11/03/2021 - 21:24