Generación de Números Aleatorios en NumPy
La generación de números aleatorios es una parte fundamental de la programación y la ciencia de datos . NumPy , una biblioteca ampliamente utilizada en Python, ofrece herramientas poderosas para generar números aleatorios. En este artículo, exploraremos cómo utilizar NumPy para generar números enteros y flotantes aleatorios , así como matrices aleatorias, y cómo seleccionar valores aleatorios a partir de una matriz. Además, discutiremos brevemente la diferencia entre números pseudoaleatorios y verdaderamente aleatorios.
Qué es un Número Aleatorio
Comencemos por aclarar qué se entiende por "número aleatorio". Contrario a la intuición, un número aleatorio no significa necesariamente un número diferente cada vez que se genera. En este contexto, "aleatorio" se refiere a algo que no se puede predecir lógicamente. Sin embargo, en el mundo de la informática, la generación de números aleatorios es impulsada por algoritmos, lo que significa que, en teoría, estos números pueden ser predecidos. Estos números se denominan números pseudoaleatorios.
Pseudoaleatorios vs. Verdaderamente Aleatorios
Los números pseudoaleatorios son generados por algoritmos y, por lo tanto, pueden ser predecibles si se conocen las condiciones iniciales. Por otro lado, los números verdaderamente aleatorios provienen de fuentes externas, como las pulsaciones de teclas, los movimientos del ratón o el ruido en la red. Estos últimos son verdaderamente impredecibles y se utilizan en aplicaciones de alta seguridad y en situaciones donde la aleatoriedad es fundamental.
Generación de Números Aleatorios con NumPy
NumPy ofrece el módulo
random
que proporciona una amplia gama de funciones para trabajar con números aleatorios. A continuación, exploraremos algunas de las funciones más comunes.
Generar un Número Entero Aleatorio
El método
randint()
del módulo
random
nos permite generar un número entero aleatorio dentro de un rango especificado.
Ejemplo
import numpy as np
# Generar un número entero aleatorio entre 10 y 50
x = np.random.randint(10, 50)
print(x)
print(x)
Generar un Número Flotante Aleatorio
El método
rand()
del módulo
random
nos proporciona un valor flotante aleatorio entre 0 y 1.
Ejemplo
import numpy as np
# Generar un valor flotante aleatorio entre 0 y 1
x = np.random.rand()
print(x)
print(x)
Generar una Matriz Aleatoria
En muchas aplicaciones, es necesario trabajar con matrices aleatorias. NumPy nos permite generar fácilmente matrices aleatorias de diversas formas.
Ejemplo 1: Generar una matriz 1-D con 7 números enteros aleatorios del 1 al 100
Ejemplo 2: Generar una matriz 2-D con 4 filas, cada fila contiene 6 números enteros aleatorios del 10 al 50
Generar Números Flotantes Aleatorios en una Matriz
El método
rand()
también nos permite especificar la forma de la matriz.
Ejemplo 1: Generar una matriz 1-D con 5 números flotantes aleatorios
Ejemplo 2: Generar una matriz 2-D con 3 filas, cada fila contiene 5 números aleatorios
Generar un Número Aleatorio a partir de una Matriz
El método
choice()
nos permite generar un valor aleatorio basado en una matriz de valores. Toma una matriz como parámetro y devuelve aleatoriamente uno de los valores.
Ejemplo: Devolver uno de los valores de una matriz
Ejemplo: Generar una matriz 2-D que consta de los valores [1, 3, 5, 7]
La generación de números aleatorios es esencial en una amplia variedad de aplicaciones, desde la simulación hasta el aprendizaje automático. NumPy facilita esta tarea al proporcionar herramientas eficientes y versátiles para generar números aleatorios. Aprovecha estas funciones para añadir aleatoriedad a tus proyectos y análisis de datos.
Practica Generación de Números Aleatorios en NumPy en el editor
Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.
Ejercicio: Generar un número entero aleatorio entre 10 y 50
El método randint() del módulo random nos permite generar un número entero aleatorio dentro de un rango especificado.
Ejemplo
import numpy as np
# Generar un número entero aleatorio entre 10 y 50
x = np.random.randint(10, 50)
print(x)
Ejercicio: Generar un valor flotante aleatorio entre 0 y 1
El método rand() del módulo random nos proporciona un valor flotante aleatorio entre 0 y 1.
Ejemplo
import numpy as np
# Generar un valor flotante aleatorio entre 0 y 1
x = np.random.rand()
print(x)
Ejercicio: Números aleatorios
En muchas aplicaciones, es necesario trabajar con matrices aleatorias. NumPy nos permite generar fácilmente matrices aleatorias de diversas formas.
Ejercicio: Números aleatorios (2)
En muchas aplicaciones, es necesario trabajar con matrices aleatorias. NumPy nos permite generar fácilmente matrices aleatorias de diversas formas.
Ejercicio: Números aleatorios (3)
El método rand() también nos permite especificar la forma de la matriz.
Ejercicio: Números aleatorios (4)
El método rand() también nos permite especificar la forma de la matriz.
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.