Permutaciones Aleatorias en NumPy
Las permutaciones aleatorias son una técnica útil en estadísticas, aprendizaje automático y muchas otras aplicaciones. En esta lección, exploraremos cómo realizar permutaciones aleatorias en NumPy , incluyendo la mezcla de elementos, la reordenación de matrices y la generación de permutaciones de matrices. A lo largo de esta lección, veremos ejemplos prácticos para comprender mejor estas operaciones.
Permutaciones Aleatorias de Elementos en NumPy
Creación de un Arreglo y Mezcla de Sus Elementos
En NumPy, podemos crear un arreglo de elementos y luego mezclar sus elementos para obtener una permutación aleatoria. Aquí hay un ejemplo:
Ejemplo
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr)
print(arr * 2)
En este ejemplo, creamos un arreglo con números del 1 al 10 utilizando
np.arange
y luego usamos
np.random.shuffle
para mezclar aleatoriamente los elementos del arreglo.
Utilización de la Función shuffle
La función
shuffle
de NumPy se utiliza para permutar los elementos de una secuencia en su lugar (sin devolver una copia). Aquí hay un ejemplo de cómo usarla con una lista:
Ejemplo
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr)
print(arr * 2)
Mezclar Matrices en NumPy
Mezclar las Filas de una Matriz
En algunos casos, es necesario mezclar las filas de una matriz, por ejemplo, cuando trabajamos con datos y deseamos aleatorizar el orden de las muestras. NumPy proporciona la función
shuffle
para realizar esto. Aquí hay un ejemplo:
Ejemplo
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr)
print(arr * 2)
En este ejemplo,
np.random.shuffle
reorganiza las filas de la matriz de forma aleatoria.
Mezclar las Columnas de una Matriz
Si en lugar de las filas queremos mezclar las columnas de una matriz, podemos transponer la matriz, realizar la mezcla y luego volver a transponerla para restaurar la forma original. Aquí tienes un ejemplo:
Ejemplo
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr)
print(arr * 2)
En este ejemplo, primero transponemos la matriz, luego mezclamos las filas (que originalmente eran columnas) y finalmente volvemos a transponer la matriz para obtener las columnas permutadas.
Generando Permutaciones de Matrices en NumPy
Creación de una Matriz con Números Secuenciales
A veces, necesitamos generar una permutación de una matriz manteniendo la matriz original intacta. Para hacerlo, primero creamos una matriz con números secuenciales y luego generamos una permutación de esa matriz. Ejemplo:
Ejemplo
import numpy as np
# Crear una matriz secuencial de 1 a 5
matriz_original = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# Crear una matriz secuencial de 1 a 5
# Crear una matriz secuencial de 1 a 5
matriz_secuencial = np.arange(1, 10).reshape(3, 3)
print("Matriz Secuencial:\n", matriz_secuencial)
print("Matriz Secuencial:\n", matriz_secuencial)
Generación de una Permutación de la Matriz en NumPy
Una vez que tengamos una matriz secuencial, podemos generar una permutación de ella utilizando
np.random.permutation
. Esto creará una nueva matriz con los mismos valores, pero en un orden aleatorio. Ejemplo:
Ejemplo
import numpy as np
arr = np.arange(1, 11)
np.random.shuffle(arr)
print("Arreglo mezclado:", arr)
print("Permutación nueva:", np.random.permutation(arr))
Uso de Permutaciones para Reorganizar Datos en NumPy
Las permutaciones son útiles para reorganizar datos de manera aleatoria, lo que puede ser útil en aplicaciones como el entrenamiento de modelos de aprendizaje automático, validación cruzada y pruebas estadísticas.
En esta lección, hemos explorado cómo realizar permutaciones aleatorias en NumPy, tanto para elementos individuales como para matrices enteras. También hemos visto cómo crear una matriz secuencial y generar permutaciones de ella para reorganizar datos. Estas técnicas son fundamentales en el procesamiento de datos y el análisis estadístico.
Practica Permutaciones Aleatorias 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: Números aleatorios
En NumPy, podemos crear un arreglo de elementos y luego mezclar sus elementos para obtener una permutación aleatoria. Aquí hay un ejemplo.
Ejemplo
import numpy as np
arr = np.arange(1, 11)
np.random.shuffle(arr)
print("Arreglo mezclado:", arr)
print("Permutación nueva:", np.random.permutation(arr))
Ejercicio: Números aleatorios (2)
La función shuffle de NumPy se utiliza para permutar los elementos de una secuencia en su lugar (sin devolver una copia). Aquí hay un ejemplo de cómo usarla con.
Ejercicio: Crear un array NumPy
En algunos casos, es necesario mezclar las filas de una matriz, por ejemplo, cuando trabajamos con datos y deseamos aleatorizar el orden de las muestras. NumPy proporciona la funci.
Ejemplo
import numpy as np
arr = np.array([10, 20, 30, 40])
print(np.random.permutation(arr))
Ejercicio: Números aleatorios (3)
Si en lugar de las filas queremos mezclar las columnas de una matriz, podemos transponer la matriz, realizar la mezcla y luego volver a transponerla para restaurar la forma origina.
Ejemplo
import numpy as np
rng = np.random.default_rng(42)
print(rng.permutation([1, 2, 3, 4]))
Ejercicio: Crear un array NumPy (2)
A veces, necesitamos generar una permutación de una matriz manteniendo la matriz original intacta. Para hacerlo, primero creamos una matriz con números secuenciales y luego generam.
Ejercicio: Crear una matriz secuencial de 1 a 5
Una vez que tengamos una matriz secuencial, podemos generar una permutación de ella utilizando np.random.permutation . Esto creará una nueva matriz con los mism.
Ejemplo
import numpy as np
# Crear una matriz secuencial de 1 a 5
matriz_original = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# Crear una matriz secuencial de 1 a 5
# Crear una matriz secuencial de 1 a 5
matriz_secuencial = np.arange(1, 10).reshape(3, 3)
print("Matriz Secuencial:\n", matriz_secuencial)