Números aleatorios en NumPy

¿Qué son los números aleatorios?

Los números aleatorios no significan que tengan diferentes números cada vez. Significa que no se puede predecir lógicamente.

Pseudoaleatorio y verdaderamente aleatorio

La computadora trabaja en programas, y los programas son conjuntos de instrucciones autoritativas. Por lo tanto, esto significa que debe haber algún algoritmo para generar números aleatorios.

Si hay un programa para generar números aleatorios, se puede predecir, por lo que no son verdaderamente aleatorios.

Los números aleatorios generados mediante algoritmos se denominan números pseudoaleatorios.

¿Podemos generar números verdaderamente aleatorios?

Sí. Para generar un número verdaderamente aleatorio en nuestra computadora, necesitamos obtener datos aleatorios de alguna fuente externa. La fuente externa suele ser nuestras pulsaciones de teclado, movimientos del ratón, datos de red, etc.

No necesitamos números verdaderamente aleatorios, a menos que estén relacionados con la seguridad (por ejemplo, claves de cifrado) o que la base de la aplicación sea la aleatoriedad (por ejemplo, la ruleta rusa digital).

En este tutorial, utilizaremos números pseudoaleatorios.

Generar número aleatorio

NumPy proporciona el módulo random para manejar números aleatorios.

Ejemplo

Generar un entero aleatorio entre 0 y 100:

from numpy import random
x = random.randint(100)
print(x)

Ejecutar ejemplo

Generar número flotante aleatorio

Módulo random rand() El método devuelve un número flotante aleatorio entre 0 y 1.

Ejemplo

Generar un número flotante aleatorio entre 0 y 100:

from numpy import random
x = random.rand()
print(x)

Ejecutar ejemplo

Generar array aleatorio

En NumPy, podemos usar los dos métodos del ejemplo anterior para crear un array aleatorio.

entero

randint() El método acepta size Parámetros, en los que puede especificar la forma del array.

Ejemplo

Generar un array 1-D que contiene 5 números enteros aleatorios entre 0 y 100:

from numpy import random
x=random.randint(100, size=(5))
print(x)

Ejecutar ejemplo

Ejemplo

Generar un array 2-D de 3 filas, cada una con 5 números enteros aleatorios entre 0 y 100:

from numpy import random
x = random.randint(100, size=(3, 5))
print(x)

Ejecutar ejemplo

Número flotante

rand() El método también permite especificar la forma del array.

Ejemplo

Generar un array 1-D que contiene 5 números aleatorios flotantes:

from numpy import random
x = random.rand(5)
print(x)

Ejecutar ejemplo

Ejemplo

Generar un array 2-D de 3 filas, cada una con 5 números aleatorios:

from numpy import random
x = random.rand(3, 5)
print(x)

Ejecutar ejemplo

Generar números aleatorios desde un array

choice() El método le permite generar valores aleatorios basados en un array de valores.

choice() El método toma un array como parámetro y devuelve uno de los valores aleatorios.

Ejemplo

Devuelve uno de los valores del array:

from numpy import random
x = random.choice([3, 5, 7, 9])
print(x)

Ejecutar ejemplo

choice() El método también permite que devuelva un array de valores.

Añadir una size Los parámetros especifican la forma del array.

Ejemplo

Generar un array bidimensional compuesto de valores del array de parámetros (3, 5, 7 y 9):

from numpy import random
x = random.choice([3, 5, 7, 9], size=(3, 5))
print(x)

Ejecutar ejemplo