viernes, 11 de enero de 2019

Matrices en Python y NumPy

Hoy veremos que son las Matrices en Python y Numpy.
Para dicho tema he sacado la información (que explica de manera detalla y de gran forma) de la siguiente fuente: https://www.programiz.com/python-programming/matrix 

Matrices en Python y NumPy

¿Que es una Matriz?


Las matrices son una estructura de datos bidimencional donde los elementos se organizan en filas y columnas. Ejemplo de esto: 

¿Que es una Matriz?
Esta matriz es una matriz de 3x4 porque tiene 3 filas y 4 columnas. 

Matriz en Python


Python no tiene un tipo de dato incorporado para trabajar con matrices, sin embargo podemos tratar la matriz como una lista de listas, por ejemplo:

Lista de listas Python

Puedes conocer las listas más a fondo en la siguiente entrada: Listas en Python

Veamos como trabajar con una lista anidada:

lista anidada python

Veamos otro ejemplo, crearemos una matriz a través de un for anidado:

Suma de matrices Python

Otro ejemplo, transponer una matriz utilizando for anidado:

Transponer matriz en python

El uso de las listas anidadas para trabajar como una matriz funciona para tareas simples, sin embargo, a la hora de trabajar con matrices complejas podremos usar el paquete Numpy.

Numpy Array


NumPy es un paquete científico que admite un poderoso objeto de matriz N-Dimensional. Antes de comenzar a trabajar con NumPy necesitamos instalarlo:

Como instalar NumPy


Como instalar NumPy en Windows:
Terminal: pip install numpy

Como instalar NumPy en Ubuntu & Debian:
Terminal: sudo apt-get install python-numpy

Como instalar NumPy en Fedora:
Terminal: sudo dnf install numpy

Como instalar NumPy en Macports:
Terminal: sudo port install py35-numpy

Como instalar NumPy en Homebrew:
Terminal: pip install numpy

NumPy nos proporciona una matriz de elementos multidimensionales (que en realidad es un objeto), veamos un ejemplo:

NumPy Python

Como podemos ver, la clase Matriz de NumPy se llama ndarray.

Como crear un Array en NumPy


Hay varias formas de crear una array en NumPy, veamos un ejemplo con Integers, Floats y números complejos:

Como crear un Array en NumPy

Otro ejemplo, Array de ceros y unos: 

Array de ceros y unos Python

Otro ejemplo utilizando arange() y shape()

arange() y shape() NumPy y Python

Operaciones de Matriz con NumPy


Anteriormente estuvimos haciendo operaciones con Matrices creadas a partir de listas de listas. Ahora vamos a realizar operaciones utilizando la librería NumPy:

Ejemplo usando el operador + para sumar dos matrices:


Sumar matrices con Numpy

Ejemplo de multiplicación de matrices con NumPy utilizando el método dot():

Multiplicar matrices en NuMpy

Otro ejemplo, transponer un a matriz con NumPy utilizando el método transpose():

Transponer un a matriz con NumPy

Como podemos ver, NumPy hace que nuestra tarea sea mucho más fácil.

Acceso a las matrices, filas y columnas


Al igual que las listas, podemos acceder a los elementos de una matriz utilizando el índice. Comencemos con una matriz NumPy unidireccional:

acceder a los elementos de una matriz con NumPy

Ahora veamos como podemos acceder a los elementos de una matriz bidireccional (que básicamente una Matriz):

Acceder a los elementos de una matriz bidirecciona NumPy

Ejemplo accediendo a las filas de una matriz:

Accediendo a las filas de una matriz

Ejemplo accediendo a las columnas de una matriz: 

Accediendo a las columnas de una matriz NumPy

Porciones de una Matriz


El corte de una matriz NumPy unidireccional es similar al de una lista. Veamos un ejemplo:

Porciones de una Matriz NumPy

Resumiendo podemos decir que trabajar con NumPy para manipular las matrices en vez de utilizar listas de listas hace que nuestro trabajo sea más sencillo.

Espero que este resumen de Matrices Python y NumPy sea de su agrado.

No olviden dejar sugerencias, dudas o cualquier otro comentario. Saludos

Diego

1 comentario :
Write comentarios
  1. Muchas gracias por vuestro trabajo!!
    Muy bueno y muy claro el trabajo sobre matrices

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Powered by Blogger .