Introducción
Esta práctica cubrirá algunas de las características avanzadas de NumPy, incluyendo álgebra lineal, generación de números aleatorios y matrices enmascaradas.
💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí
Esta práctica cubrirá algunas de las características avanzadas de NumPy, incluyendo álgebra lineal, generación de números aleatorios y matrices enmascaradas.
NumPy tiene un conjunto completo de funciones para operaciones de álgebra lineal. Aquí hay algunos ejemplos:
Abra la consola de Python escribiendo el siguiente comando en la terminal.
python3
El producto punto de dos matrices se puede calcular utilizando la función np.dot()
. El producto punto de dos matrices A y B se define como la suma del producto de los elementos correspondientes de A y B.
import numpy as np
## crear dos matrices
a = np.array([1, 2])
b = np.array([3, 4])
## calcular el producto punto
dot_product = np.dot(a, b)
print(dot_product) ## Salida: 11
La multiplicación de matrices se puede realizar utilizando el operador @
o la función np.matmul()
.
Lea cuidadosamente los siguientes ejemplos.
## crear dos matrices
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
## multiplicación de matrices
C = A @ B
print(C) ## Salida: [[19 22], [43 50]]
También puede obtener los resultados de otra manera.
## crear dos matrices
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
## multiplicación de matrices
C = np.matmul(A,B)
print(C) ## Salida: [[19 22], [43 50]]
El determinante e inversa de una matriz se pueden calcular utilizando las funciones np.linalg.det()
y np.linalg.inv()
respectivamente.
## crear una matriz
A = np.array([[1, 2], [3, 4]])
## calcular el determinante e inversa
det_A = np.linalg.det(A)
inv_A = np.linalg.inv(A)
print(det_A) ## Salida: -2.0
print(inv_A) ## Salida: [[-2. 1. ], [ 1.5 -0.5]]
Ahora es su turno para construir dos matrices y utilizar la función np.dot()
para calcular el producto punto. Utilice @
o np.matmul()
para calcular la multiplicación de matrices y use las funciones np.linalg.det()
y np.linalg.inv()
para calcular el determinante de la matriz y la matriz inversa.
NumPy proporciona varias funciones para generar números aleatorios. Aquí hay algunos ejemplos:
La función np.random.rand()
se puede utilizar para generar números aleatorios entre 0 y 1.
## generar una matriz 2x2 de números aleatorios
a = np.random.rand(2, 2)
print(a) ## Salida: [[0.43584547 0.37752558], [0.08936734 0.65526767]]
La función np.random.randint()
se puede utilizar para generar enteros aleatorios entre dos números especificados.
## generar una matriz de enteros aleatorios entre 1 y 10
a = np.random.randint(1, 10, size=(3, 3))
print(a) ## Salida: [[8 7 3], [3 3 7], [8 8 7]]
La función np.random.normal()
se puede utilizar para generar números a partir de una distribución normal.
## generar una matriz de números a partir de una distribución normal
a = np.random.normal(0, 1, size=(2, 2))
print(a) ## Salida: [[ 1.28418331 -0.90564647], [-0.76477896 1.69903421]]
Ahora siga las funciones anteriores para completar la salida de números aleatorios, enteros aleatorios y distribución normal. Por favor, complete este ejercicio.
Las matrices enmascaradas son matrices a las que está adjunta una máscara. La máscara es una matriz de valores booleanos que indican qué elementos de la matriz deben ser enmascarados (ocultos). NumPy proporciona el módulo np.ma
para trabajar con matrices enmascaradas.
Una matriz enmascarada se puede crear utilizando la función np.ma.masked_array()
.
## crear una matriz con algunos valores enmascarados
a = np.ma.masked_array([1, 2, 3, 4], mask=[True, False, False, True])
print(a) ## Salida: [-- 2 3 --]
Una máscara se puede aplicar a una matriz utilizando la función np.ma.masked_where()
.
## crear una matriz
a = np.array([1, 2, 3, 4])
## crear una máscara
mask = a > 2
## aplicar la máscara
b = np.ma.masked_where(mask, a)
print(b) ## Salida: [1 2 -- --]
Las matrices enmascaradas se pueden utilizar para manejar valores no válidos como NaN (not a number) o infinitos.
## crear una matriz con algunos valores no válidos
a = np.array([1, np.nan, np.inf, 4])
## crear una matriz enmascarada
b = np.ma.masked_invalid(a)
print(b) ## Salida: [1.0 -- -- 4.0]
Ahora, por favor, use el módulo np.ma
proporcionado por numoy para completar la creación de la matriz enmascarada. Al mismo tiempo, use la función np.ma.masked_where()
para aplicar la máscara a la matriz y, finalmente, use np.ma.masked_invalid()
para manejar valores no válidos. Por favor, complete este ejercicio.
¡Felicitaciones por haber completado este experimento!
En este tutorial, hemos cubierto algunos de los temas avanzados en NumPy, incluyendo álgebra lineal, generación de números aleatorios y matrices enmascaradas. Estas características son útiles para muchas aplicaciones, incluyendo el análisis de datos y el cálculo científico.
¡Sigue trabajando duro!