Juegos Matemáticos con NumPy

PythonBeginner
Practicar Ahora

Introducción

En este desafío, practicarás el uso del módulo NumPy en Python. Implementarás varias funciones comunes para manipular arreglos de NumPy, abarcando operaciones matemáticas y de arreglos fundamentales. Los archivos necesarios ya han sido creados para ti en el explorador de archivos a la izquierda.

Este es un Desafío (Challenge), que a diferencia de un Laboratorio Guiado, requiere que intentes completar la tarea de forma independiente en lugar de seguir pasos de aprendizaje estructurados. Los desafíos suelen tener una dificultad mayor. Si te resulta complicado, puedes consultarlo con Labby o revisar la solución. Los datos históricos muestran que este es un desafío de nivel avanzado con una tasa de aprobación del 50%. Ha recibido una tasa de valoraciones positivas del 97% por parte de los estudiantes.

Multiplicación Elemento a Elemento

Tu primera tarea consiste en crear una función que multiplique dos arreglos de NumPy elemento a elemento. Esto significa que cada elemento del primer arreglo se multiplica por el elemento correspondiente en el segundo arreglo.

Tareas pendientes

  • Completa la función multiply_arrays en el archivo multiply_arrays.py.

Requisitos

  • La función debe llamarse multiply_arrays.
  • Debe aceptar dos arreglos de NumPy, a y b, como entrada.
  • Debe devolver un nuevo arreglo de NumPy que sea el resultado de la multiplicación elemento a elemento de a y b.
  • Los arreglos de entrada tendrán la misma forma (shape).

Ejemplo

Después de implementar la función, ejecuta el script para ver el resultado:

python3 multiply_arrays.py

Salida:

Input a: [1 2 3]
Input b: [4 5 6]
Element-wise multiplication result: [4 10 18]
Expected: [4 10 18]
✨ Revisar Solución y Practicar

Multiplicación de Matrices

A continuación, implementarás la multiplicación de matrices. A diferencia de la multiplicación elemento a elemento, la multiplicación de matrices sigue reglas específicas del álgebra lineal y requiere que las dimensiones internas de las dos matrices sean compatibles.

Tareas pendientes

  • Completa la función matrix_multiply en el archivo matrix_multiply.py.

Requisitos

  • La función debe llamarse matrix_multiply.
  • Debe aceptar dos arreglos de NumPy, a y b, como entrada.
  • Debe devolver un nuevo arreglo de NumPy que sea el resultado del producto matricial de a y b.
  • Los arreglos de entrada tendrán formas compatibles para la multiplicación de matrices.

Ejemplo

Después de implementar la función, ejecuta el script para ver el resultado:

python3 matrix_multiply.py

Salida:

Input matrix a:
[[1 2]
 [3 4]]
Input matrix b:
[[5 6]
 [7 8]]
Matrix multiplication result:
[[19 22]
 [43 50]]
Expected:
[[19 22]
 [43 50]]
✨ Revisar Solución y Practicar

Transposición de un Arreglo

En este paso, escribirás una función para transponer un arreglo de NumPy. Transponer un arreglo intercambia sus filas por sus columnas.

Tareas pendientes

  • Completa la función transpose_array en el archivo transpose_array.py.

Requisitos

  • La función debe llamarse transpose_array.
  • Debe aceptar un único arreglo de NumPy, a, como entrada.
  • Debe devolver la versión transpuesta del arreglo de entrada.

Ejemplo

Después de implementar la función, ejecuta el script para ver el resultado:

python3 transpose_array.py

Salida:

Original array:
[[1 2 3]
 [4 5 6]]
Transposed array:
[[1 4]
 [2 5]
 [3 6]]
Expected:
[[1 4]
 [2 5]
 [3 6]]
✨ Revisar Solución y Practicar

Redimensionamiento de un Arreglo

Ahora, crearás una función para cambiar la forma (reshape) de un arreglo de NumPy. El redimensionamiento cambia las dimensiones de un arreglo sin alterar sus datos. El número total de elementos debe permanecer constante.

Tareas pendientes

  • Completa la función reshape_array en el archivo reshape_array.py.

Requisitos

  • La función debe llamarse reshape_array.
  • Debe aceptar un arreglo de NumPy a y una tupla shape como entrada.
  • Debe devolver un nuevo arreglo con los datos de a pero con las nuevas dimensiones especificadas por shape.

Ejemplo

Después de implementar la función, ejecuta el script para ver el resultado:

python3 reshape_array.py

Salida:

Original array: [1 2 3 4 5 6]
New shape: (2, 3)
Reshaped array:
[[1 2 3]
 [4 5 6]]
Expected:
[[1 2 3]
 [4 5 6]]
✨ Revisar Solución y Practicar

Cálculo de la Distancia Euclidiana

La distancia euclidiana es una forma común de medir la distancia en línea recta entre dos puntos. Tu tarea es implementar una función que calcule esta distancia entre dos arreglos unidimensionales de NumPy.

La fórmula para la distancia euclidiana entre dos vectores a y b es:

d(a, b) = \sqrt{\sum\_{i=1}^{n}(a_i - b_i)^2}

Tareas pendientes

  • Completa la función euclidean_distance en el archivo euclidean_distance.py.

Requisitos

  • La función debe llamarse euclidean_distance.
  • Debe aceptar dos arreglos unidimensionales de NumPy, a y b, de la misma longitud.
  • Debe devolver un único número de punto flotante que represente la distancia euclidiana entre ellos.

Ejemplo

Después de implementar la función, ejecuta el script para ver el resultado:

python3 euclidean_distance.py

Salida:

Point a: [1 2 3]
Point b: [4 5 6]
Euclidean distance: 5.196152422706632
Expected: 5.196152422706632
✨ Revisar Solución y Practicar

Resumen

En este desafío, has practicado operaciones fundamentales de NumPy. Implementaste funciones para la multiplicación elemento a elemento, multiplicación de matrices, transposición de arreglos, redimensionamiento y cálculo de la distancia euclidiana. Estas habilidades son esenciales para el análisis de datos, el aprendizaje automático (machine learning) y la computación científica en Python.