Saltar navegación

As contas con NumPy

Librería Numpy
Isabela Presedo-Floyd. Librería Numpy (CC BY-SA)

NumPy (Numerical Python) é unha librería para Python que se utiliza para traballar con matrices e grandes cantidades de datos numéricos de maneira eficiente. É fundamental para moitas aplicacións de IA porque nos permite realizar cálculos matemáticos complexos de maneira moi rápida e sinxela.

Unha matriz é como unha táboa de números organizada en filas e columnas. Imaxinemos unha folla de cálculo : cada cela contén un número e están organizadas en filas e columnas. As matrices son útiles en moitas áreas da IA porque nos permiten organizar e manipular datos de maneira eficiente.

Actividades de aprendizaxe

Actividade 1: Crear e manipular matrices

Obxectivo: Aprender a crear matrices e realizar operacións básicas con NumPy.
Instrución: Crear unha matriz de números enteiros e calcular a suma, o produto, o valor mínimo e máximo.

Código Python: Creación e manipulación dunha matriz

import numpy as np

# Crear unha matriz (array) de números enteiros
numeros = np.array([2, 3, 5, 7, 11, 13, 17])

# Calcular a suma de todos os elementos do array
suma = np.sum(numeros)
print("Suma:", suma)

# Calcular o produto de todos os elementos do array
producto = np.prod(numeros)
print("Produto:", producto)

# Atopar o valor mínimo e máximo dentro do array
minimo = np.min(numeros)  # Valor mínimo
maximo = np.max(numeros)  # Valor máximo
print("Mínimo:", minimo)
print("Máximo:", maximo)

    

Actividade 2: Operacións entre matrices

Obxectivo: Aprender a realizar operacións matemáticas entre matrices.
Instrución: Crear dous matrices e realizar operacións de suma, resta, multiplicación e división.

Código Python: Operacións con matrices

import numpy as np

# Crear dúas matrices (arrays) de números enteiros
matriz1 = np.array([1, 2, 3])
matriz2 = np.array([4, 5, 6])

# Suma das matrices elemento a elemento
suma = matriz1 + matriz2
print("Suma:", suma)

# Resta das matrices elemento a elemento
resta = matriz1 - matriz2
print("Resta:", resta)

# Multiplicación das matrices elemento a elemento
multiplicacion = matriz1 * matriz2
print("Multiplicación:", multiplicacion)

# División das matrices elemento a elemento
division = matriz1 / matriz2
print("División:", division)    

Actividade 3: Crear matrices multidimensionales

Obxectivo: Comprender como crear e manipular matrices de varias dimensións.
Instrución: Crear unha matriz 2x3 e realizar operacións básicas como transposición e reshape.

A función reshape permite cambiar a forma dun array sen cambiar os seus datos.  É importante asegurarse de que o número total de elementos permaneza constante. Por exemplo,  un array de 12 elementos pode ser remodelado en unha matriz de 3x4,  4x3,  2x6,  etc.,  pero non en unha matriz de 5x3.

Unha matriz trasposta é o resultado de cambiar a disposición de unha matriz, intercambiando as súas filas por columnas e viceversa.

Código Python: Matrices de varias dimensións

import numpy as np

# Crear unha matriz 2x3
matriz = np.array([[1, 2, 3], [4, 5, 6]])

# Transposición da matriz (intercambia filas e columnas)
transposta = np.transpose(matriz)
print("Matriz transposta:")
print(transposta)

# Cambio da forma (reshape) da matriz
# Neste caso, reorganiza os elementos nunha matriz de 1 fila e 6 columnas
reshaped = np.reshape(matriz, (1, 6)) # O número total de elementos debe coincidir (2x3 = 6)
print("Matriz transformada:")
print(reshaped)    

Actividade 4: Traballar con funcións universais (ufuncs)

Obxectivo: Aprender a utilizar funcións universais para operacións element-wise.
Instrución: Aplicar funcións matemáticas como seno, coseno e exponencial a unha matriz de números.

Elemento por elemento

Código Python: Funcións matemáticas

import numpy as np

# Crear unha matriz de números que representan ángulos en radianos
numeros = np.array([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi])

# Aplicar a función seno a cada elemento da matriz
seno = np.sin(numeros)
print("Seno:", seno)

# Aplicar a función coseno a cada elemento da matriz
coseno = np.cos(numeros)
print("Coseno:", coseno)

# Aplicar a función exponencial a cada elemento da matriz
exponencial = np.exp(numeros)
print("Exponencial:", exponencial)

    

Actividade 5: Operacións avanzadas con NumPy

Obxectivo: Aprender a utilizar técnicas avanzadas de NumPy como a xeración de números aleatorios e a manipulación de datos.
Instrución: Crear unha matriz de números aleatorios e aplicar técnicas de filtrado e ordenación.

Código Python: Filtrado de datos aleatorios

import numpy as np

# Crear unha matriz de números aleatorios de tamaño 5x5
aleatorios = np.random.rand(5, 5)
print("Matriz de números aleatorios:")
print(aleatorios)

# Filtrar os números maiores que 0.5 dentro da matriz
filtrados = aleatorios[aleatorios > 0.5]
print("Números filtrados maiores que 0.5:")
print(filtrados)

# Ordenar todos os elementos da matriz en orde crecente
ordenados = np.sort(aleatorios, axis=None)
print("Matriz ordenada:")
print(ordenados)

    

Actividade 6: Slicing