Números aleatorios en NumPy
¿Qué es un número aleatorio?
Número aleatorio NO significa un número diferente cada vez. Aleatorio significa algo que no se puede predecir lógicamente.
Pseudo Random y True Random.
Las computadoras funcionan con programas, y los programas son un conjunto definitivo de instrucciones. Entonces significa que debe haber algún algoritmo para generar un número aleatorio también.
Si hay un programa para generar números aleatorios, se puede predecir, por lo que no es realmente aleatorio.
Los números aleatorios generados a través de un algoritmo de generación se denominan pseudoaleatorios .
¿Podemos hacer números verdaderamente aleatorios?
Si. Para generar un número verdaderamente aleatorio en nuestras computadoras, necesitamos obtener los datos aleatorios de alguna fuente externa. Esta fuente externa es generalmente nuestras pulsaciones de teclas, movimientos del mouse, datos en la red, etc.
No necesitamos números verdaderamente aleatorios, a menos que esté relacionado con la seguridad (p. ej., claves de encriptación) o la base de aplicación sea la aleatoriedad (p. ej., ruedas de ruleta digital).
En este tutorial usaremos números pseudoaleatorios.
Generar número aleatorio
NumPy ofrece el random
módulo para trabajar con números aleatorios.
Ejemplo
Genere un número entero aleatorio de 0 a 100:
from numpy import random
x = random.randint(100)
print(x)
Generar flotante aleatorio
El rand()
método del módulo aleatorio devuelve un flotante aleatorio entre 0 y 1.
Ejemplo
Genera un flotante aleatorio de 0 a 1:
from numpy import random
x = random.rand()
print(x)
Generar matriz aleatoria
En NumPy trabajamos con matrices, y puede usar los dos métodos de los ejemplos anteriores para crear matrices aleatorias.
enteros
El randint()
método toma un size
parámetro donde puede especificar la forma de una matriz.
Ejemplo
Genere una matriz 1-D que contenga 5 enteros aleatorios del 0 al 100:
from numpy import random
x=random.randint(100, size=(5))
print(x)
Ejemplo
Genere una matriz 2-D con 3 filas, cada fila conteniendo 5 enteros aleatorios de 0 a 100:
from numpy import random
x = random.randint(100, size=(3, 5))
print(x)
flotadores
El rand()
método también le permite especificar la forma de la matriz.
Ejemplo
Genere una matriz 1-D que contenga 5 flotantes aleatorios:
from numpy import random
x = random.rand(5)
print(x)
Ejemplo
Genere una matriz 2-D con 3 filas, cada fila conteniendo 5 números aleatorios:
from numpy import random
x = random.rand(3, 5)
print(x)
Generar número aleatorio de matriz
El choice()
método le permite generar un valor aleatorio basado en una matriz de valores.
El choice()
método toma una matriz como parámetro y devuelve aleatoriamente uno de los valores.
Ejemplo
Devuelve uno de los valores en una matriz:
from numpy import random
x = random.choice([3, 5, 7, 9])
print(x)
El choice()
método también le permite devolver una matriz de valores.
Agregue un size
parámetro para especificar la forma de la matriz.
Ejemplo
Genere una matriz 2-D que consta de los valores en el parámetro de matriz (3, 5, 7 y 9):
from numpy import random
x = random.choice([3, 5, 7, 9], size=(3, 5))
print(x)