Saltar al contenido

Python – Matriz

octubre 20, 2021

Matrix es un caso especial de matriz bidimensional donde cada elemento de datos es estrictamente del mismo tamaño. Entonces, cada matriz es también una matriz bidimensional, pero no al revés.

Las matrices son estructuras de datos muy importantes para muchos cálculos matemáticos y científicos. Como ya hemos discutido la estructura de datos de dos matrices dimensionales en el capítulo anterior, nos centraremos en las operaciones de estructura de datos específicas de las matrices en este capítulo.

También usaremos el paquete numpy para la manipulación de datos matriciales.

Ejemplo de matriz

Considere el caso de registrar la temperatura durante 1 semana medida por la mañana, mediodía, tarde y media noche. Se puede presentar como una matriz de 7X5 usando una matriz y el método de remodelación disponible en numpy.

from numpy import * 
a = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
   ['Wed',15,21,20,19],['Thu',11,20,22,21],
   ['Fri',18,17,23,22],['Sat',12,22,20,18],
   ['Sun',13,15,19,16]])
m = reshape(a,(7,5))
print(m)

Producción

Los datos anteriores se pueden representar como una matriz bidimensional como se muestra a continuación:

[
   ['Mon' '18' '20' '22' '17']
   ['Tue' '11' '18' '21' '18']
   ['Wed' '15' '21' '20' '19']
   ['Thu' '11' '20' '22' '21']
   ['Fri' '18' '17' '23' '22']
   ['Sat' '12' '22' '20' '18']
   ['Sun' '13' '15' '19' '16']
]

Acceder a valores

Se puede acceder a los elementos de datos en una matriz utilizando los índices. El método de acceso es el mismo que la forma en que se accede a los datos en la matriz bidimensional.

Ejemplo

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
   ['Wed',15,21,20,19],['Thu',11,20,22,21],
   ['Fri',18,17,23,22],['Sat',12,22,20,18],
   ['Sun',13,15,19,16]])
    
# Print data for Wednesday
print(m[2])

# Print data for friday evening
print(m[4][3])

Producción

Cuando se ejecuta el código anterior, produce el siguiente resultado:

['Wed', 15, 21, 20, 19]
23

Agregar una fila

Utilice el código mencionado a continuación para agregar una fila en una matriz.

Ejemplo

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
   ['Wed',15,21,20,19],['Thu',11,20,22,21],
   ['Fri',18,17,23,22],['Sat',12,22,20,18],
   ['Sun',13,15,19,16]])
m_r = append(m,[['Avg',12,15,13,11]],0)

print(m_r)

Producción

Cuando se ejecuta el código anterior, produce el siguiente resultado:

[
   ['Mon' '18' '20' '22' '17']
   ['Tue' '11' '18' '21' '18']
   ['Wed' '15' '21' '20' '19']
   ['Thu' '11' '20' '22' '21']
   ['Fri' '18' '17' '23' '22']
   ['Sat' '12' '22' '20' '18']
   ['Sun' '13' '15' '19' '16']
   ['Avg' '12' '15' '13' '11']
]

Agregar una columna

Podemos agregar una columna a una matriz usando el método insert (). aquí tenemos que mencionar el índice donde queremos agregar la columna y una matriz que contiene los nuevos valores de las columnas agregadas. En el siguiente ejemplo agregamos una nueva columna en la quinta posición desde el principio.

Ejemplo

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
   ['Wed',15,21,20,19],['Thu',11,20,22,21],
   ['Fri',18,17,23,22],['Sat',12,22,20,18],
   ['Sun',13,15,19,16]])
m_c = insert(m,[5],[[1],[2],[3],[4],[5],[6],[7]],1)

print(m_c)

Producción

Cuando se ejecuta el código anterior, produce el siguiente resultado:

[
   ['Mon' '18' '20' '22' '17' '1']
   ['Tue' '11' '18' '21' '18' '2']
   ['Wed' '15' '21' '20' '19' '3']
   ['Thu' '11' '20' '22' '21' '4']
   ['Fri' '18' '17' '23' '22' '5']
   ['Sat' '12' '22' '20' '18' '6']
   ['Sun' '13' '15' '19' '16' '7']
]

Eliminar una fila

Podemos eliminar una fila de una matriz usando el método delete (). Tenemos que especificar el índice de la fila y también el valor del eje que es 0 para una fila y 1 para una columna.

Ejemplo

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
   ['Wed',15,21,20,19],['Thu',11,20,22,21],
   ['Fri',18,17,23,22],['Sat',12,22,20,18],
   ['Sun',13,15,19,16]])
m = delete(m,[2],0)

print(m)

Producción

Cuando se ejecuta el código anterior, produce el siguiente resultado:

[
   ['Mon' '18' '20' '22' '17']
   ['Tue' '11' '18' '21' '18']
   ['Thu' '11' '20' '22' '21']
   ['Fri' '18' '17' '23' '22']
   ['Sat' '12' '22' '20' '18']
   ['Sun' '13' '15' '19' '16']
]

Eliminar una columna

Podemos eliminar una columna de una matriz usando el método delete (). Tenemos que especificar el índice de la columna y también el valor del eje que es 0 para una fila y 1 para una columna.

Ejemplo

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
   ['Wed',15,21,20,19],['Thu',11,20,22,21],
   ['Fri',18,17,23,22],['Sat',12,22,20,18],
   ['Sun',13,15,19,16]])
m = delete(m,s_[2],1)

print(m)

Producción

Cuando se ejecuta el código anterior, produce el siguiente resultado:

[
   ['Mon' '18' '22' '17']
   ['Tue' '11' '21' '18']
   ['Wed' '15' '20' '19']
   ['Thu' '11' '22' '21']
   ['Fri' '18' '23' '22']
   ['Sat' '12' '20' '18']
   ['Sun' '13' '19' '16']
]

Actualizar una fila

Para actualizar los valores en la fila de una matriz, simplemente reasignamos los valores en el índice de la fila. En el siguiente ejemplo, todos los valores de los datos del jueves están marcados como cero. El índice de esta fila es 3.

Ejemplo

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
   ['Wed',15,21,20,19],['Thu',11,20,22,21],
   ['Fri',18,17,23,22],['Sat',12,22,20,18],
   ['Sun',13,15,19,16]])
m[3] = ['Thu',0,0,0,0]

print(m)

Producción

Cuando se ejecuta el código anterior, produce el siguiente resultado:

[
   ['Mon' '18' '20' '22' '17']
   ['Tue' '11' '18' '21' '18']
   ['Wed' '15' '21' '20' '19']
   ['Thu' '0' '0' '0' '0']
   ['Fri' '18' '17' '23' '22']
   ['Sat' '12' '22' '20' '18']
   ['Sun' '13' '15' '19' '16']
]
close