Definir matrices en Python

| Última modificación: 8 de julio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes cómo definir matrices en Python? Las matrices son una serie de números distribuidos en filas y columnas. Están intrínsecamente relacionadas con las transformaciones lineales, que, a su vez, están muy relacionadas con el concepto de perceptrón, la unidad básica de las redes neuronales.

Veamos, por tanto, cómo se deben definir las matrices en Python.

Definir matrices en Python

Existen varios modos de definir matrices en Python. A continuación, detallamos algunas de ellas.

Usando listas

Python no tiene incorporada de manera interna una función que nos permita elaborar matrices. No obstante, podemos tratar a una lista como una matriz. Veamos un ejemplo de cómo hacerlo:

#Crear matrices en python
#Definir matrices en Python
A = [[1,  4,  5],
        [-5,  8,  9]]

print (A)
print (type (A))

La salida sería:

[[1, 4, 5],
 [-5, 8, 9]]
<class 'list'>

Al ser una lista, no podemos imprimir su tamaño, pero sí su longitud:

#Cómo generar una matriz en python
#Definir matrices en Python
print (f "Length: {len (A)}")
print (f "Shape: {A.shape}")

Lenght: 2

matrices en Python

Como era de esperar, las listas no son un np.array, por tanto, cuando intentamos usar el .shape para verificar el tamaño del array, nos aparece un error.

Recordemos que en los vectores, matrices y todo tipo de arrays, los índices empiezan en cero y no en uno.

Podemos acceder a los elementos de una matriz:

#Vectores y matrices en python
#Definir matrices en Python
print (A)
print (A [0]) #Que nos devuelva la primera fila
print (A [0] [0]) #Que nos devuelva el primer elemento de la primera fila

[[1, 4, 5], [-5, 8, 9]]

[1, 4, 5]

1

Si quisiéramos obtener la tercera columna, deberíamos hacer lo siguiente:

#Definir matrices en Python
column = [ ]
for row in A:
      column.append (row [2])

print (column)

[5, 9]

Como puedes ver, es mucho más complejo que si usáramos numpy para hacer este tipo de consultas.

Podemos utilizar las listas para operaciones con matrices cuando sea algo sencillo y que no requiera operaciones muy complejas. No obstante, para el resto lo mejor es usar Numpy.

Usando Numpy

En Numpy podemos crear una matriz tanto empleando la función np.matrix() como np.array(). Sin embargo, es totalmente desaconsejable usar np.matrix(), ya que en la propia documentación de Numpy nos advierten de que dicha clase puede eliminarse en cualquier momento.

Por tanto, nosotros vamos a utilizar np.array(). Para crear una matriz simplemente debemos definir:

#Definir matrices en Python
import numpy as np

A = np.array ([[1,  2,  3], [4,  5,  6]])
A

array ([[1, 2, 3],
[4, 5, 6]])

Podemos generar la matriz identidad usando np.identity ():

#Definir matrices en Python
np.identity (10)

array (

[[1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],

[0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],

[0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],

[0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],

[0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],

[0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],

[0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],

[0., 0., 0., 0., 0., 0., 0., 0., 1., 0.],

[0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]])

Para crear una matriz donde todos sus elementos sean 0, excepto la diagonal, lo que implica que no tiene por qué ser cuadrada, podemos usar np.eye:

#Definir matrices en Python
np.eye (4,  3)

array (

[[1., 0., 0.],

[0., 1., 0.],

[0., 0., 1.],

[0., 0., 0.]])

También podemos controlar qué diagonal se rellena:

#Definir matrices en Python
np.eye (4,  3,  k = -1)

array (

[[0., 0., 0.],

[1., 0., 0.],

[0., 1., 0.],

[0., 0., 1.]])

#Definir matrices en Python
np.eye (4, 4) #== np.identity (4)

array (

[[1., 0., 0., 0.],

[0., 1., 0., 0.],

[0., 0., 1., 0.],

[0., 0., 0., 1.]])

Para generar una matriz llena de ceros:

#Definir matrices en Python
A = np.zeros ((4,  6))
A

array (

[[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],

[0., 0., 0., 0., 0., 0.],

[0., 0., 0., 0., 0., 0.]])

Ahora que sabes cómo generar matrices en Python con listas y Numpy, puedes seguir aprendiendo sobre Big Data para convertirte en un experto en el sector. Podrás acceder a una de las disciplinas más demandadas y mejor pagadas en todo el mercado laboral en pocos meses gracias al Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. Esta es una formación íntegra y de alta intensidad en la que adquirirás todos los conocimientos teóricos y prácticos que te ayudarán a obtener el trabajo de tus sueños. ¡Entra ya para solicitar información y anímate a cambiar tu futuro!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado