Introducción
NumPy es una biblioteca de Python utilizada para el cálculo numérico. Está diseñada para trabajar con matrices y arreglos, lo que la convierte en una herramienta poderosa para el cálculo científico. En este laboratorio, aprenderá los siguientes tres temas relacionados con las operaciones de arreglos de NumPy:
- Operaciones matemáticas
- Difusión (Broadcasting)
- Funciones universales
Operaciones matemáticas
NumPy proporciona una variedad de operaciones matemáticas para matrices. Estas operaciones se pueden realizar en una o más matrices.
Abrir la consola de Python
Abra la consola de Python escribiendo el siguiente comando en la terminal.
python3
Importar NumPy
NumPy ya está instalado, puede importarlo en su código de Python:
import numpy as np
Operaciones elemento a elemento
Las operaciones elemento a elemento son operaciones realizadas en cada elemento de la matriz.
Vamos a crear dos matrices y realizar algunas operaciones elemento a elemento:
## Creando dos matrices
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([5, 6, 7, 8])
## Sumar dos matrices
print("Sumar dos matrices: ", arr1 + arr2)
## Restar dos matrices
print("Restar dos matrices: ", arr1 - arr2)
## Multiplicar dos matrices
print("Multiplicar dos matrices: ", arr1 * arr2)
## Dividir dos matrices
print("Dividir dos matrices: ", arr1 / arr2)
## Encontrar el residuo después de la división de dos matrices
print("Módulo de dos matrices: ", arr1 % arr2)
## Elevar los elementos de una matriz a una potencia
print("Elevar una matriz a una potencia: ", arr1 ** 2)
Salida:
Sumar dos matrices: [ 6 8 10 12]
Restar dos matrices: [-4 -4 -4 -4]
Multiplicar dos matrices: [ 5 12 21 32]
Dividir dos matrices: [0.2 0.33333333 0.42857143 0.5 ]
Módulo de dos matrices: [1 2 3 4]
Elevar una matriz a una potencia: [ 1 4 9 16]
Operaciones en toda la matriz
Las operaciones en toda la matriz son operaciones realizadas en toda la matriz.
Vamos a crear una matriz y realizar algunas operaciones en toda la matriz:
## Creando una matriz
arr = np.array([1, 2, 3, 4])
## Encontrar la suma de todos los elementos de la matriz
print("Suma de la matriz: ", np.sum(arr))
## Encontrar el producto de todos los elementos de la matriz
print("Producto de la matriz: ", np.prod(arr))
## Encontrar el elemento mínimo de la matriz
print("Elemento mínimo de la matriz: ", np.min(arr))
## Encontrar el elemento máximo de la matriz
print("Elemento máximo de la matriz: ", np.max(arr))
## Encontrar el promedio de todos los elementos de la matriz
print("Promedio de la matriz: ", np.mean(arr))
## Encontrar la desviación estándar de todos los elementos de la matriz
print("Desviación estándar de la matriz: ", np.std(arr))
Salida:
Suma de la matriz: 10
Producto de la matriz: 24
Elemento mínimo de la matriz: 1
Elemento máximo de la matriz: 4
Promedio de la matriz: 2.5
Desviación estándar de la matriz: 1.118033988749895
Difusión (Broadcasting)
La difusión (Broadcasting) es una característica de NumPy que permite realizar operaciones elemento a elemento entre matrices con diferentes formas. La difusión es especialmente útil cuando se trabaja con matrices de diferentes dimensiones.
Vamos a crear una matriz y realizar algunas operaciones de difusión:
## Creando dos matrices de diferentes formas
array1 = np.array([1, 2, 3])
array2 = np.array([[4, 5, 6], [7, 8, 9]])
## Difundiendo la matriz más pequeña a la matriz más grande
print("Sumando dos matrices usando difusión: ", array1 + array2)
print("Restando dos matrices usando difusión: ", array1 - array2)
print("Multiplicando dos matrices usando difusión: ", array1 * array2)
print("Dividiendo dos matrices usando difusión: ", array1 / array2)
Salida:
Sumando dos matrices usando difusión: [[ 5 7 9]
[ 8 10 12]]
Restando dos matrices usando difusión: [[-3 -3 -3]
[-6 -6 -6]]
Multiplicando dos matrices usando difusión: [[ 4 10 18]
[7 16 27]]
Dividiendo dos matrices usando difusión: [[0.25 0.4 0.5 ]
[0.14285714 0.25 0.33333333]]
En el código anterior, creamos dos matrices, array1 con la forma (3,) y array2 con la forma (2,3). Realizamos operaciones elemento a elemento entre array1 y array2, gracias a la característica de difusión en NumPy. La matriz más pequeña, array1, se difunde a la matriz más grande, array2, para realizar operaciones elemento a elemento. La difusión hace posible realizar operaciones en matrices con diferentes formas.
Funciones universales
Las funciones universales, o ufuncs, son funciones que operan sobre matrices de manera elemento a elemento. Proporcionan operaciones rápidas y eficientes en matrices.
Vamos a crear una matriz y realizar algunas ufuncs:
## Creando una matriz
arr = np.array([1, 2, 3, 4])
## Encontrando la raíz cuadrada de cada elemento de la matriz
print("Raíz cuadrada de la matriz: ", np.sqrt(arr))
## Encontrando el exponencial de cada elemento de la matriz
print("Exponencial de la matriz: ", np.exp(arr))
## Encontrando el seno de cada elemento de la matriz
print("Seno de la matriz: ", np.sin(arr))
## Encontrando el coseno de cada elemento de la matriz
print("Coseno de la matriz: ", np.cos(arr))
## Encontrando el logaritmo natural de cada elemento de la matriz
print("Logaritmo natural de la matriz: ", np.log(arr))
Salida:
Raíz cuadrada de la matriz: [1. 1.41421356 1.73205081 2. ]
Exponencial de la matriz: [ 2.71828183 7.3890561 20.08553692 54.59815003]
Seno de la matriz: [ 0.84147098 0.90929743 0.14112001 -0.7568025 ]
Coseno de la matriz: [ 0.54030231 -0.41614684 -0.9899925 -0.65364362]
Logaritmo natural de la matriz: [0. 0.69314718 1.09861229 1.38629436]
Resumen
¡Felicitaciones! Ahora has aprendido sobre las operaciones de arreglos de NumPy, incluyendo Operaciones Matemáticas, Difusión (Broadcasting) y Funciones Universales. Con este conocimiento, ahora puedes realizar una amplia variedad de tareas de cálculo numérico con Python.



