Módulo Python random: resumen de las funciones
El módulo random de Python cuenta con diversas funciones para generar números aleatorios en diferentes formatos, desde números enteros hasta números en coma flotante, o seleccionar elementos de listas.
¿Qué es el módulo Python random?
El módulo Python random es una biblioteca integrada con la que se pueden generar números aleatorios y realizar operaciones aleatorias en los programas. Dispone de varias funciones para generar números pseudoaleatorios que pueden utilizarse en muchos ámbitos, desde la simulación hasta el desarrollo de juegos y tareas criptográficas.
Una de sus características importantes es su capacidad de reproducibilidad. Al especificar un valor inicial o semilla, los resultados de la generación de números aleatorios pueden replicarse, lo que resulta útil para realizar pruebas, experimentos y simulaciones que requieren datos aleatorios consistentes.
Lista de funciones del módulo random
El módulo random de Python contiene distintos métodos para generar y procesar números aleatorios. En la siguiente tabla se han resumido sus funciones y características:
Nombre de la función | Explicación |
---|---|
seed(a=None, version=2)
|
Establece el valor inicial (semilla) para el generador de números aleatorios. |
getstate()
|
Devuelve el estado actual del generador de números aleatorios como objeto. |
setstate(state)
|
Restablece el estado del generador de números aleatorios mediante un objeto de estado. |
getrandbits(k)
|
Devuelve un número entero con k bits. |
randrange(start, stop, step)
|
Crea un número entero aleatorio dentro del rango especificado. |
randint(a, b)
|
Devuelve un número entero aleatorio en el rango especificado. |
choice(seq)
|
Devuelve un elemento aleatorio de la secuencia definida. |
choices(population, weights=None, *, cum_weights=None, k=1)
|
Crea una lista con k elementos seleccionados aleatoriamente de la población; las probabilidades pueden especificarse de forma opcional. |
sample(k, population)
|
Crea una lista con k elementos seleccionados aleatoriamente de la población; sin duplicados. |
shuffle(x)
|
Mezcla los elementos en una lista en un orden aleatorio. |
random()
|
Devuelve un número de punto flotante aleatorio en el rango de 0 a 1. |
uniform(a, b)
|
Devuelve un número de punto flotante aleatorio en el rango especificado, incluidos los valores límite. |
triangular(low, high, mode)
|
Crea un número de punto flotante aleatorio en el rango de distribución triangular. |
betavariate(alpha, beta)
|
Devuelve un número de punto flotante aleatorio de una distribución beta. |
expovariate(lambd)
|
Devuelve un número de punto flotante aleatorio de una distribución exponencial. |
gammavariate(alpha, beta)
|
Crea un número de punto flotante aleatorio de una distribución gamma. |
gauss(mu, sigma)
|
Devuelve un número de punto flotante aleatorio de una distribución gaussiana. |
lognormvariate(mu, sigma)
|
Crea un número de punto flotante aleatorio de una distribución logarítmica normal. |
normalvariate(mu, sigma)
|
Devuelve un número de punto flotante aleatorio de una distribución normal. |
vonmisesvariate(mu, kappa)
|
Devuelve un número de punto flotante aleatorio de una distribución de Von Mises. |
paretovariate(alpha)
|
Devuelve un número de punto flotante aleatorio de una distribución de Pareto. |
weibullvariate(alpha, beta)
|
Devuelve un número de punto flotante aleatorio de una distribución de Weibull. |
Seleccionar elementos aleatorios de una lista
Para seleccionar varios elementos aleatorios de una lista, puedes utilizar la función choices(seq, k=n)
del módulo random de Python, en la que n
es el número de elementos aleatorios deseados.
import random
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Randomly selecting an element from the list
random_elements = random.choices(my_list, k=3)
print("Randomly selected elements:", random_element)
pythonEn este ejemplo, se utiliza la función choices()
para seleccionar tres elementos aleatorios de la lista my_list
. Los resultados se devuelven como una lista de tres elementos aleatorios.
- Rápido, seguro, flexible y escalable
- Certificado SSL/DDoS incluido
- Dominio y asesor personal incluidos
Mezclar una lista
La función shuffle()
ordena los elementos de las Python lists en un orden aleatorio.
import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Shuffle the elements in the list
random.shuffle(my_list)
print("Shuffled list:", my_list) # Example Output: Shuffled list: ['Strawberry', 'Banana', 'Apple', 'Cherry', 'Orange']
pythonTen en cuenta que shuffle()
cambia la lista y no devuelve una nueva. Después de usar esta función, la lista original quedará en un orden aleatorio.
Establecer una semilla
Si utilizas random.seed()
del módulo random de Python para establecer un valor semilla específico, el generador de números aleatorios empezará a generar números aleatorios basándose en esa semilla. Es decir, si estableces el mismo valor de semilla posteriormente, se generará el mismo conjunto de números aleatorios en la aplicación.
import random
# Setting the seed value to 42
random.seed(42)
# Generating random numbers
print(random.random()) # Example output: 0.6394267984578837
print(random.random()) # Example output: 0.025010755222666936
# Resetting the seed value to 42
random.seed(42)
# Generating random numbers again
print(random.random()) # Example output: 0.6394267984578837 (identical to the previous value)
print(random.random()) # Example output: 0.025010755222666936 (identical to the previous value)
pythonDespués de establecer el valor inicial o semilla, se generan y emiten números aleatorios. Si el valor de la semilla se restablece en el mismo valor, se vuelven a generar los mismos números aleatorios. En el código anterior, la semilla tiene el valor 42, por lo que los números aleatorios se pueden reproducir siempre que el valor de semilla siga siendo el mismo.