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.

 suma de matrices con python

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.
  1. fjmurillov dice:

    Excelente gracias, estamos aprendiendo +++++

  2. Unknown dice:

    hay un error en la definición de producto de matrices

  3. x dice:

    O.O
    las matrices no se multiplican así...

  4. Unknown dice:

    Intente hacer la de multiplicacion pero me sale que newMatrix no esta definida

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Te has suscrito correctamente al boletín

Se produjo un error al intentar enviar tu solicitud. Inténtalo de nuevo.

Mi Diario Python will use the information you provide on this form to be in touch with you and to provide updates and marketing.