Temas avanzados de NumPy

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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.

Álgebra lineal con NumPy

NumPy tiene un conjunto completo de funciones para operaciones de álgebra lineal. Aquí hay algunos ejemplos:

Abrir la consola de Python

Abra la consola de Python escribiendo el siguiente comando en la terminal.

python3

Producto punto

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

Multiplicación de matrices

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]]

Determinante e inversa

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]]

Ejercicio

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.

Generación de números aleatorios

NumPy proporciona varias funciones para generar números aleatorios. Aquí hay algunos ejemplos:

Generando números aleatorios

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]]

Generando enteros aleatorios

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]]

Generando distribución normal

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]]

Ejercicio

Ahora siga las funciones anteriores para completar la salida de números aleatorios, enteros aleatorios y distribución normal. Por favor, complete este ejercicio.

Matrices enmascaradas

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.

Creando una matriz enmascarada

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 --]

Aplicando una máscara

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 -- --]

Enmascarando valores no válidos

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]

Ejercicio

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.

Resumen

¡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!