Introducción a las Matrices en Python - Creación y operaciones matemáticas de Matrices
Introducción:
Hola amigos de Internet. Les doy la bienvenida a Mi Diario Python, el mejor blog en español para Aprender Python.
En este articulo, nos centraremos en crear matrices con Python. Veremos como representarlas y realizar algunas operaciones con estas.
¿Interesado? Sigue leyendo.
Matrices en Python:
Sencillamente, las matrices son listas, dentro de otro lista. Sí, así es, podemos decir que es una lista bidimensional, 2x2.
Supongamos que tenemos la matriz: [[4,3],[9,3]]. La primera fila de esta matriz es (4,3) y la segunda (9,3).
En Python nos quedaria algo así:
a = [[4,3],[9,3]] print(a)
[[4, 3], [9, 3]]
Sabiendo todo esto, podemos crear nuestras propias formas de generar matrices:
def newMatrix(f,c,n): matriz = [] for i in range(f): a = [n]*c matriz.append(a) return matriz
newMatrix(3, 5, 1)
[[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]]
Esta función nos permite generar todas las matrices que queramos. La función recibe tres argumentos: f = filas de la matris, c = columnas de la matriz, n = los elementos de la matriz.
En este caso el tercer argumento es 1, y por ello todos los elementos de la matriz están definidos con valor 1.
Operaciones matemáticas con matrices:
Ahora, veamos algunas operaciones matemáticas que podemos efectuar sobre nuestras matrices:
Como por la operación más básica, la suma.
En la siguiente imagen se muestra el proceso de suma que se lleva a cabo entre dos matrices.
Muy fácil, es algo muy predecible. Se suma cada elemento de las dos matrices donde sus indices sean los mismos.
Veamos como podemos hacer esto en código:
def sumaMatriz(A,B): # Obtenemos las dimensiones de la matriz numFilasA = len(A) numFilasB = len(B) numColumnasA = len(A[0]) numColumnasB = len(B[0]) if numFilasA == numFilasB and numColumnasA == numColumnasB: C = newMatrix(numFilasA, numColumnasA, 0) # Creamos una matriz for i in range(numFilasA): for j in range(numColumnasA): # En la nueva matriz plasmamaos los resultados C[i][j] = A[i][j] + B[i][j] # Retornamos la matriz con los resultados return C
suma = sumaMatriz([[1,2,3],[7,8,9],[13,14,15]], [[4,5,6],[10,11,12],[16,17,18]]) print(suma)
[[5, 7, 9], [17, 19, 21], [29, 31, 33]]
Podemos tomar de base esta función para realizar otras operaciones matemáticas, solo debemos cambiar el signo.
def multiplicacionMatriz(A,B): # Obtenemos las dimensiones de la matriz numFilasA = len(A) numFilasB = len(B) numColumnasA = len(A[0]) numColumnasB = len(B[0]) if numFilasA == numFilasB and numColumnasA == numColumnasB: C = newMatrix(numFilasA, numColumnasA, 0) # Creamos una matriz for i in range(numFilasA): for j in range(numColumnasA): # En la nueva matriz plasmamaos los resultados C[i][j] = A[i][j] * B[i][j] # Retornamos la matriz con los resultados return C
multiplicacionMatriz([[1,2,3],[7,8,9],[13,14,15]], [[4,5,6],[10,11,12],[16,17,18]])
[[4, 10, 18], [70, 88, 108], [208, 238, 270]]
Como pueden ver, es muy fácil. Solo debemos tener un poco de lógica al momento de recorrer la matriz.
Representando una matriz:
Para terminar, vamos a crear una función que nos permite visualizar las matrices de una forma más ordenada y limpia. Veamos como hacerlo:
def show_matrix(M): """ Imprime los valores almacenados en la matriz """ filas = len(M) columnas = len(M[0]) for i in range(filas): for j in range(columnas): # Imprime de una forma elegante la matriz print("| {0} ".format(M[i][j]), sep=',', end='') print('|n')
La función recibe la matriz como argumento, extrae sus dimensiones (filas y columnas) y se va mostrando cada elemento algunos espacios definidos y el caracter | para separar los valores.
Probemos la función:
a = [[1,2,3],[7,8,9],[4,5,6]] show_matrix(a)
| 1 | 2 | 3 | | 7 | 8 | 9 | | 4 | 5 | 6 |
¿Que tal? Mucho mejor ¿No lo crees?
Veamos como se ve la matriz de suma:
show_matrix(suma)
| 5 | 7 | 9 | | 17 | 19 | 21 | | 29 | 31 | 33 |
Excelente, muy bien, lo hemos logrado. Ahora sabemos manejar matrices utilizando Python.
¿Alguna duda? No dudes en dejar tu comentario.
Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes :D.
-
hay un error en la definición de producto de matrices
-
O.O
las matrices no se multiplican así... -
Intente hacer la de multiplicacion pero me sale que newMatrix no esta definida
Deja una respuesta
Excelente gracias, estamos aprendiendo +++++