Algebra Lineal con Python

A este punto ya hemos visto lo que es un escalar, un vector y una matriz. Ha llegado el momento de ver esto, pero a nivel de programación.

Para implementar el código vamos a utilizar como lenguaje de programación Python junto al IDE Spyder, pero tu puedes utilizar cualquier IDE que quieras.

La forma más sencilla y flexible para trabajar con escalares, vectores y matrices en Python es implementando la librería NumPy, ya que están optimizadas para tales operaciones.

Por lo tanto, importamos esta librería como np, en nuestro código.

Entonces declaremos primeramente un escalar. En Python, como en otros lenguajes de programación, un entero o un flotante puede funcionar acá.

Así que colocamos e es igual 5, y ejecutamos la línea de código.

Ahora declaremos un vector. Digamos que queremos definir como vector los siguientes números: -4, 8, 5. Para esto definimos una nueva variable v igual a np punto array abrimos paréntesis y corchete y escribimos dentro de ellos nuestros números.

Ahora imprimamos la variable y podemos observar que contiene los tres valores que queríamos.

Ten mucho cuidado en colocar los paréntesis y corchetes.

Ahora creemos una matriz, entonces colocamos m es igual np punto array y abrimos paréntesis y corchetes.

Si observar la matriz que queremos declarar en realidad son dos vectores, por tal motivo la definimos de esa forma.

Abrimos nuevamente corchetes y escribimos el primer vector, 1, 0 -9. Cerramos el corchete y colocamos una coma.

Abrimos un nuevo corchete y escribimos el segundo vector, 3, -6, 7 y cerramos todos los corchetes y paréntesis que teníamos abierto.

Imprimamos esta línea para ver el resultado.

Como puedes ver tenemos una matriz, exactamente cómo queríamos.

Igual que en el caso anterior, ten cuidado con los paréntesis y corchetes que abres y cierras ya que te puede dar algún error al momento de ejecutar el código.

Estas tareas son bastante simples, pero si apenas estas comenzando es muy buena idea seguir practicando, definiendo tu mismo nuevos escalares, vectores y matrices.

Existen varias consideraciones importantes de programación que tenemos que conocer previamente ya que son fundamentales para la codificación.

Primeramente, tipos de datos. Si escribimos type junto con la variable nos devolverá el tipo de datos de esa variable.

Por ejemplo, type y dentro del paréntesis escribimos la variable e. Si ejecutamos la línea nos devuelve int, que se refiere que esta variable es un entero.

Hagamos lo mismo con v y m. Ambos son numpy ndarrays, es decir matrices de numpy de n dimensiones. Si nos vamos al específico, la variable v es una matriz de 1 sola dimensión mientras que la variable m es una matriz de 2 dimensiones. En general podemos tener matrices de n dimensiones.

Entonces si quiero ser consistente con el resto de las variables, puedo declarar a e como una matriz de numpy, para esto solamente escribo e_array es igual a np.array y abro paréntesis y escribo 5 dentro del paréntesis y corchete.

Si verificamos el tipo de datos de esta nueva variable podemos ver que ahora es el mismo tipo de datos que las variables v y m.

Como ves esta es otra forma de crear un escalar en Python.

Aunque de manera practica, tanto en Python como en NumPy, los enteros, flotantes y matrices de un solo elemento se comportan de la misma manera en operaciones de álgebra lineal, por lo que es indiferente como se defina estos elementos.

Ahora veamos la forma de las variables. En Python existe un método llamado shape que podemos aplicar a nuestros objetos para comprobar su dimensionalidad y forma.

Entonces escribimos la variable, en este caso será m, punto shape y nos devuelve 2, 3. Eso era lo que esperábamos ya que estamos manejando una matriz de 2 x 3.

Hagamos los mismo con v. Nos devuelve “3,” lo que es correcto. Esto lo veras en algunos lenguajes de programación, pero no en todos. Esto lo que quiere decir es que la variable tiene almacenado 3 elementos. Estos elementos están almacenados en orden, aunque dependiendo de nuestras necesidades podemos utilizar el método reshape para crear una columna o una fila.

Podemos escribir el v punto reshape y la forma que queremos. Si colocamos 1, 3 nos devolverá un vector de fila mientras si colocamos 3, 1 nos devuelve una columna.

Finalmente podemos verificar la forma de e. Nos da un error, en donde nos indica que los enteros no tienen forma.

Intentemos hacer lo mismo pero con la variable e_array, nos devuelve “1,”, como lo esperábamos.

De esta forma podemos declarar en Python los escalares, vectores y matrices.

Ahora procedamos a sumar y restar matrices, estas son operaciones matemáticas muy sencillas.

Empecemos con la suma, definimos dos matrices. Si te fijas son las dos matrices que utilizamos en la explicación teórica.

Una vez realizado procedemos a sumar ambas matrices. Para hacer esto simplemente utilizamos el símbolo de suma y listo. El resultado que obtuvimos es el mismo al que vimos en la parte teoría.

Ahora realicemos la resta de dos matrices, lo primero que debemos hacer es definir las dos matrices en nuestro programa, m3 y m4.

Para restar estas dos matrices utilizamos el símbolo de resta y listo. No existe mucha diferencia entre el procedimiento para la suma y la resta de matrices.

Como te lo explique en la teoría, para sumar y restar matrices, ambas matrices deben tener la misma forma, de caso contrario no se puede realizar la operación matemática. Esto no solo se aplica en la teoría, sino también a nivel de programación.

Veamos un ejemplo, tenemos estas dos matrices en donde una, m1, es 2 x 3, y m3 que es 2 x 2. Al sumar ambas matrices Python nos genera un error. El mismo nos indica que no es posible realizar la operación por la diferencia de las formas de ambas matrices.

Hagamos esto mismo, pero ahora restando estas mismas matrices. De igual forma nos da el error. Por lo tanto lo que se aplica en la teoría también lo aplica Python a nivel de programación.

Pero a esta regla existe una excepción y es la de sumar un escalar a una matriz. Veamos esto a nivel de programación. Si tenemos la matriz m1 y queremos sumarle el valor de 2, lo único que tenemos que hacer es sumar m1 + 2 y nuestros programa suma dicho valor a cada uno de los elementos de la matriz

Matemática esto no es posible ya que las formas de ambos elementos son distintas, pero a nivel de programación, es permitida, por lo menos lo es en Python.

Es importante tener conocimiento de esta peculiaridad a nivel de programación. Esto es posible gracias a las matrices creadas con NumPy pero no a nivel del álgebra lineal.

Ahora veamos como trasponer una matriz en Python, para ello definimos la matriz m1.

Para realizar esta operación solamente debemos colocar el nombre de la variable punto y utilizamos el método T en mayúscula. Eso es todo.

Perfecto, de esta forma obtuvimos la matriz transpuesta de m1.

Veamos otro ejemplo, esta vez utilizando la matriz m2. Esta es una matriz 2 x 2, el resultado también será una matriz 2 x 2 pero esta vez los datos que era fila ahora serán columnas y viceversa.

Perfecto, como ves realizar la traspuesta de una matriz no es tan complicado en Python.

Veamos ahora una traspuesta es un vector. Para este ejemplo utilizamos la variable v que definimos previamente.

El procedimiento es el mismo que con las matrices. Colocamos el nombre de la variable punto T en mayúscula. El resultado acá es exactamente al vector original.

Esto se debe a que en Python, las matrices numpy de una sola dimensión no pueden ser transpuestas, recuerda que la forma acá es de “3,”.

Si utilizas el método reshape para cambiar la forma de este vector y que sea 3 x 1, de esta forma si puedes aplicar el método traspuesto y obtener el resultado correcto.

Esta es otra peculiaridad que debes considerar cuando estas trabajando con matrices en Python.

Realicemos ahora la multiplicación de un escalar por un vector.

Definamos el vector x que será igual a 2, 8 y -4. Este vector lo multiplicamos por 10. Por lo que escribimos en nuestro código 10 por x.

El resultado es otro vector con la misma longitud que el original y cada elemento es multiplicado por el escalar, que para nuestro caso es 10.

Perfecto exactamente ese es el resultado que estábamos esperando.

Veamos ahora como realizar producto punto, en donde multiplicamos dos vectores y obtenemos un escalar.

Para esto, definimos los dos vectores, x y y. Utilizaremos el método dot para obtener la multiplicación por lo tanto colocamos np.dot y dentro del paréntesis escribimos los vectores que queremos multiplicar, x y y.

Fíjate que el resultado es -66, un escalar.

Revisemos ahora como multiplicar dos matrices utilizando el producto punto.

Lo primero que debemos hacer es definir las matrices, acá vamos a utilizar la matriz m1 que definimos previamente y la matriz m5.

Para implementar el método dot, solamente debemos escribir np.dot y dentro del paréntesis colocamos m1 y m5. Listo nos da el resultado esperado.

Ya tienes las bases para implementar álgebra lineal un Python, por lo tanto te dejo la siguiente pregunta, ¿Cuáles de las siguientes afirmaciones crees tú que sea cierta?

Opción 1: Con la instrucción de Python “reshape” podemos conocer la forma de la matriz. Respuesta incorrecta. Para conocer la forma de la matriz se utiliza la instrucción “shape”.

Opción 2: Utilizar la librería NumPy es la mejor opción para manejar los escalares, vectores y matrices. Respuesta correcta

Opción 3: En álgebra lineal podemos sumar una matriz y un escalar. Respuesta correcta.

Deja en los comentarios cuál crees que sea la opción correcta. Puede ser una o más respuestas las correctas.

Te felicito, haz completado el curso de Introducción al Álgebra Lineal. Con este curso sientas las bases para comprender mejor cada una de las áreas que forman parte de la Inteligencia Artificial.

Te invito a que continúes con tu aprendizaje con el resto de cursos que ofrezco.

Deja una respuesta

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