Python Matriz: ejemplos de transposición, multiplicación y matrices NumPy

¿Qué es Python Matrix?

A Python Una matriz es una matriz rectangular bidimensional especializada de datos almacenados en filas y columnas. Los datos de una matriz pueden ser números, cadenas, expresiones, símbolos, etc. Una matriz es una de las estructuras de datos importantes que se pueden utilizar en cálculos matemáticos y científicos.

¿Cómo Python ¿Las matrices funcionan?

Los datos dentro de la matriz bidimensional en formato matricial tienen el siguiente aspecto:

Python Matrix

Paso 1) Muestra una matriz de 2×2. Tiene dos filas y dos columnas. Los datos dentro de la matriz son números. La fila 2 tiene los valores 1 y la fila 2,3 tiene los valores 2. Las columnas, es decir, col4,5, tienen los valores 1 y col2,4 tiene los valores 2.

Paso 2) Muestra una matriz de 2×3. Tiene dos filas y tres columnas. Los datos dentro de la primera fila, es decir, la fila1, tienen los valores 2,3,4 y la fila2 tiene los valores 5,6,7. Las columnas col1 tiene valores 2,5, col2 tiene valores 3,6 y col3 tiene valores 4,7.

De manera similar, puede almacenar sus datos dentro de la matriz nxn en PythonSe pueden realizar muchas operaciones en una matriz, como suma, resta, multiplicación, etc.

Python no tiene una forma sencilla de implementar un tipo de datos matriciales.

La matriz de Python utiliza matrices y se puede implementar lo mismo.

  • Créar un Python Matriz que utiliza el tipo de datos de lista anidada
  • Crea Python Matriz usando matrices de Python paquete numeroso

Crea Python Matriz que utiliza un tipo de datos de lista anidada

In PythonLas matrices se representan mediante el tipo de datos de lista. Ahora utilizaremos la lista para crear una matriz de Python.

Crearemos una matriz de 3×3, como se muestra a continuación:

Crea Python Matriz usando una lista anidada

  • La matriz tiene 3 filas y 3 columnas.
  • La primera fila en formato de lista será la siguiente: [8,14,-6]
  • La segunda fila de una lista será: [12,7,4]
  • La tercera fila de una lista será: [-11,3,21]

La matriz dentro de una lista con todas las filas y columnas se muestra a continuación:

List = [[Row1], 
           [Row2], 
           [Row3]
           ...
           [RowN]]

Entonces, según la matriz enumerada arriba, el tipo de lista con datos de matriz es el siguiente:

M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]

Para leer datos dentro Python Matriz usando una lista.

Haremos uso de la matriz definida anteriormente. El ejemplo leerá los datos, imprimirá la matriz y mostrará el último elemento de cada fila.

Ejemplo: Para imprimir la matriz

M1 = [[8, 14, -6], 
           [12,7,4], 
           [-11,3,21]]

#To print the matrix
print(M1)

Salida:

The Matrix M1 =  [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]

Ejemplo 2: leer el último elemento de cada fila

M1 = [[8, 14, -6],
           [12,7,4], 
           [-11,3,21]]

matrix_length = len(M1)

#To read the last element from each row.
for i in range(matrix_length):
    print(M1[i][-1])

Salida:

-6
4
21

Ejemplo 3: Para imprimir las filas en Matrix

M1 = [[8, 14, -6],
           [12,7,4], 
           [-11,3,21]]

matrix_length = len(M1)

#To print the rows in the Matrix
for i in range(matrix_length):
    print(M1[i])

Salida:

[8, 14, -6]
[12, 7, 4]
[-11, 3, 21]

Agregar matrices usando una lista anidada

Podemos sumar fácilmente dos matrices dadas. Las matrices aquí estarán en forma de lista. Trabajemos en un ejemplo que se encargará de sumar las matrices dadas.

Matriz 1:

M1 = [[8, 14, -6],
           [12,7,4], 
           [-11,3,21]]

Matriz 2:

M2 = [[3, 16, -6],
           [9,7,-4], 
           [-1,3,13]]

Last inicializará una matriz que almacenará el resultado de M1 + M2.

Matriz 3:

M3  = [[0,0,0],
            [0,0,0],
            [0,0,0]]

Ejemplo: agregar matrices

Para sumar, las matrices utilizarán un bucle for que recorrerá ambas matrices dadas.

M1 = [[8, 14, -6], 
      [12,7,4], 
      [-11,3,21]]

M2 = [[3, 16, -6],
           [9,7,-4], 
           [-1,3,13]]

M3  = [[0,0,0],
       [0,0,0],
       [0,0,0]]
matrix_length = len(M1)

#To Add M1 and M2 matrices
for i in range(len(M1)):
for k in range(len(M2)):
        M3[i][k] = M1[i][k] + M2[i][k]

#To Print the matrix
print("The sum of Matrix M1 and M2 = ", M3)

Salida:

The sum of Matrix M1 and M2 =  [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]

Multiplicación de matrices usando lista anidada

Para multiplicar las matrices, podemos usar el bucle for en ambas matrices como se muestra en el siguiente código:

M1 = [[8, 14, -6], 
      [12,7,4], 
      [-11,3,21]]

M2 = [[3, 16, -6],
           [9,7,-4], 
           [-1,3,13]]

M3  = [[0,0,0],
       [0,0,0],
       [0,0,0]]

matrix_length = len(M1)

#To Multiply M1 and M2 matrices
for i in range(len(M1)):
for k in range(len(M2)):
        M3[i][k] = M1[i][k] * M2[i][k]

#To Print the matrix
print("The multiplication of Matrix M1 and M2 = ", M3)

Salida:

The multiplication of Matrix M1 and M2 =  [[24, 224, 36], [108, 49, -16], [11, 9, 273]]

Crea Python Matriz usando matrices de Python paquete numeroso

La biblioteca de Python Numpy ayuda a manejar matrices. Numpy procesa una matriz un poco más rápido en comparación con la lista.

Para trabajar con Numpy, primero debes instalarlo. Siga los pasos que se indican a continuación para instalar Numpy.

Paso 1) El comando para instalar Numpy es:

pip install NumPy

Paso 2) Para utilizar Numpy en su código, debe importarlo.

import NumPy

Paso 3) También puedes importar Numpy usando un alias, como se muestra a continuación:

import NumPy as np

Usaremos el método array() de Numpy para crear una matriz de Python.

Ejemplo: matriz en Numpy para crear Python Matrix

import numpy as np
M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])
print(M1)

Salida:

[[  5 -10  15]
 [  3  -6   9]
 [ -4   8  12]]

Matrix Operación usando Numpy.Array()

La operación matricial que se puede realizar es suma, resta, multiplicación, transposición, leer las filas, columnas de una matriz, cortar la matriz, etc. En todos los ejemplos, vamos a utilizar un método array().

Suma de matriz

Para realizar la suma en la matriz, crearemos dos matrices usando numpy.array() y las sumaremos usando el operador (+).

Ejemplo:

import numpy as np

M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])
M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])
M3 = M1 + M2  
print(M3)

Salida:

[[ 12 -12  36]
 [ 16  12  48]
 [  6 -12  60]]

Resta de matrices

Para realizar la resta en la matriz, crearemos dos matrices usando numpy.array() y las restaremos usando el operador (-).

Ejemplo:

import numpy as np

M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])
M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])
M3 = M1 - M2  
print(M3)

Salida:

[[ -6  24 -18]
 [ -6 -32 -18]
 [-20  40 -18]]

Multiplicación de matrices

Primero creará dos matrices usando numpy.arary(). Para multiplicarlos, puedes utilizar el método numpy dot(). Numpy.dot() es el producto escalar de las matrices M1 y M2. Numpy.dot() maneja las matrices 2D y realiza multiplicaciones de matrices.

Ejemplo:

import numpy as np

M1 = np.array([[3, 6], [5, -10]])
M2 = np.array([[9, -18], [11, 22]])
M3 = M1.dot(M2)  
print(M3)

Salida:

[[  93   78]
 [ -65 -310]]

Transposición de matriz

La transpuesta de una matriz se calcula cambiando las filas por columnas y las columnas por filas. La función transpose() de Numpy se puede utilizar para calcular la transposición de una matriz.

Ejemplo:

import numpy as np

M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])
M2 = M1.transpose()

print(M2)

Salida:

[[  3   5   4]
 [  6 -10   8]
 [  9  15  12]]

Corte de una matriz

Cortar le devolverá los elementos de la matriz según el índice inicial/final proporcionado.

  • La sintaxis para cortar es – [inicio:fin]
  • Si no se proporciona el índice inicial, se considera 0. Por ejemplo, [:5], significa [0:5].
  • Si no se pasa el final, se tomará como la longitud de la matriz.
  • Si el inicio/fin tiene valores negativos, el corte se realizará desde el final de la matriz.

Antes de trabajar en el corte en una matriz, primero comprendamos cómo aplicar el corte en una matriz simple.

import numpy as np

arr = np.array([2,4,6,8,10,12,14,16])
print(arr[3:6]) # will print the elements from 3 to 5
print(arr[:5]) # will print the elements from 0 to 4
print(arr[2:]) # will print the elements from 2 to length of the array.
print(arr[-5:-1]) # will print from the end i.e. -5 to -2
print(arr[:-1]) # will print from end i.e. 0 to -2

Salida:

[ 8 10 12]
[ 2  4  6  8 10]
[ 6  8 10 12 14 16]
[ 8 10 12 14]
[ 2  4  6  8 10 12 14]

Ahora implementemos el corte en matriz. Para realizar cortes en una matriz

la sintaxis será M1[row_start:row_end, col_start:col_end]

  • El primer inicio/final será para la fila, es decir, para seleccionar las filas de la matriz.
  • El segundo inicio/fin será para la columna, es decir, para seleccionar las columnas de la matriz.

La matriz M1 que vamos a utilizar es la siguiente:

M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])

Hay un total de 4 filas. El índice comienza de 0 a 3. El 0th la fila es [2,4,6,8,10], 1st la fila es [3,6,9,-12,-15] seguida de 2nd y séptimard.

La matriz M1 tiene 5 columnas. El índice comienza de 0 a 4. El 0th la columna tiene valores [2,3,4,5], 1st las columnas tienen valores [4,6,8,-10] seguidos de 2ndde 3rdde 4thy 5th.

Aquí hay un ejemplo que muestra cómo obtener los datos de filas y columnas de la matriz mediante segmentación. En el ejemplo, estamos imprimiendo el 1st y séptimand fila, y para columnas, queremos la primera, segunda y tercera columna. Para obtener esa salida hemos utilizado: M1[1:3, 1:4]

Ejemplo:

import numpy as np

M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])
print(M1[1:3, 1:4]) # For 1:3, it will give first and second row.
#The columns will be taken from first to third.

Salida:

[[  6   9 -12]
 [  8  12  16]]

Ejemplo: para imprimir todas las filas y terceras columnas.

import numpy as np
M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])
print(M1[:,3]) # This will print all rows and the third column data.

Salida:

[  8 -12  16 -20]

Ejemplo: para imprimir la primera fila y todas las columnas

import numpy as np

M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])
print(M1[:1,]) # This will print first row and all columns

Salida:

[[ 2  4  6  8 10]]

Ejemplo: para imprimir las primeras tres filas y las primeras 2 columnas

import numpy as np

M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])
print(M1[:3,:2])

Salida:

[[2 4]
 [3 6]
 [4 8]]

Accediendo a la matriz NumPy

Hemos visto cómo funciona el corte. Teniendo esto en cuenta, veremos cómo obtener las filas y columnas de la matriz.

Para imprimir las filas de la matriz

En el ejemplo se imprimirán las filas de la matriz.

Ejemplo:

import numpy as np
M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])
print(M1[0])  #first row
print(M1[1]) # the second row
print(M1[-1]) # -1 will print the last row

Salida:

[3 6 9]
[  5 -10  15]
[ 4  8 12]

Para obtener la última fila, puede utilizar el índice o -1. Por ejemplo, la matriz tiene 3 filas,

entonces M1[0] te dará la primera fila,

M1[1] te dará la segunda fila

M1[2] o M1[-1] le dará la tercera fila o la última fila.

Para imprimir las columnas de la matriz.

import numpy as np
M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])
print(M1[:,0]) # Will print the first Column
print(M1[:,3]) # Will  print the third Column
print(M1[:,-1]) # -1 will give you the last column

Salida:

[2 3 4 5]
[  8 -12  16 -20]
[ 10 -15 -20  25]

Resumen

  • A Python Una matriz es una matriz rectangular bidimensional especializada de datos almacenados en filas y columnas. Los datos de una matriz pueden ser números, cadenas, expresiones, símbolos, etc. Una matriz es una de las estructuras de datos importantes que se pueden utilizar en cálculos matemáticos y científicos.
  • Python no tiene una forma sencilla de implementar un tipo de datos matriciales. Python La matriz se puede crear utilizando un tipo de datos de lista anidada y utilizando la biblioteca numpy.
  • La biblioteca de Python Numpy ayuda a manejar matrices. Numpy procesa una matriz un poco más rápido en comparación con la lista.
  • Las operaciones matriciales que se pueden realizar son suma, resta, multiplicación, transposición, lectura de filas y columnas de una matriz, corte de la matriz, etc.
  • Para sumar dos matrices, puedes utilizar numpy.array() y sumarlas usando el operador (+).
  • Para multiplicarlos, puedes utilizar el método numpy dot(). Numpy.dot() es el producto escalar de las matrices M1 y M2. Numpy.dot() maneja las matrices 2D y realiza multiplicaciones de matrices.
  • La transpuesta de una matriz se calcula cambiando las filas por columnas y las columnas por filas. La función transpose() de Numpy se puede utilizar para calcular la transposición de una matriz.
  • La división de una matriz le devolverá los elementos según el índice inicial/final dado.

Resumir este post con: