logo

Matriz de Python

En este tutorial, aprenderemos sobre las matrices de Python. En Python, un objeto matricial es similar a las listas anidadas, ya que son multidimensionales. Veremos cómo crear una matriz usando matrices Numpy. A continuación, veremos varios métodos de operaciones matriciales y ejemplos para una mejor comprensión.

¿Qué es una matriz en Python?

Una matriz en Python es una matriz Numpy rectangular. Esta matriz tiene que ser bidimensional. Contiene datos almacenados en las filas y columnas de la matriz. En una matriz de Python, las series horizontales de elementos se denominan 'filas', mientras que las series verticales de elementos se denominan 'columnas'. Las filas y columnas se apilan unas sobre otras como una lista anidada. Si una matriz contiene r número de filas y c número de columnas, donde r y c son números enteros positivos, entonces r x c determina el orden de este objeto de matriz.

Podemos almacenar cadenas, números enteros y objetos de otros tipos de datos en una matriz. Los datos se almacenan en pilas de filas y columnas en una matriz. La matriz es una estructura de datos crucial para los cálculos en matemáticas y ciencias. En Python, consideramos una lista de listas o una lista anidada como una matriz, ya que Python no incluye ningún tipo integrado para un objeto de matriz.

En el transcurso de este tutorial, revisaremos la siguiente lista de métodos de operación matricial.

  • Suma de matrices
  • Multiplicación de matrices
  • Operador de multiplicación de matrices
  • Multiplicación de matrices sin Numpy
  • Matriz inversa
  • transposición de matriz
  • Matriz a matriz

¿Cómo funcionan las matrices en Python?

Escribimos datos en una matriz bidimensional para crear una matriz. Se hace de la siguiente manera:

jpa en primavera

Ejemplo

 [ 2 3 5 7 6 3 2 6 7 2 5 7 2 6 1 ] 

Muestra una matriz que tiene 3 filas y 5 columnas, por lo que su dimensión es 3×5. Los objetos de tipo de datos enteros constituyen los datos de esta matriz. La Fila1, la primera fila, tiene valores (2, 3, 5, 7, 6), mientras que la Fila2 tiene valores (3, 2, 6, 7, 2) y la Fila3 tiene valores 5, 7, 2, 6, 1. Respecto a columnas, la Columna 1 tiene valores (2, 3, 5), la Columna 2 tiene valores (3, 2, 7), y así sucesivamente.

Ejemplo

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

Muestra una matriz que tiene 3 filas y 3 columnas, por lo que su dimensión es 3×3. Las matrices que tienen filas y columnas iguales se denominan matrices cuadradas.

De manera similar, Python permite a los usuarios almacenar sus datos dentro de una matriz de dimensiones m x n. Podemos realizar la suma de matrices, multiplicación, transposición y otras operaciones en una estructura similar a una matriz.

La implementación de un objeto matricial en Python no es sencilla. Podemos crear una matriz de Python usando matrices y usarlas de manera similar.

Matriz numérica

El software de computación científica NumPy admite un objeto de matriz N-dimensional robusto. Instalar NumPy es un requisito previo para usarlo en nuestro programa.

it es

NumPy se puede utilizar e importar después de la instalación. Conocer los conceptos básicos de Numpy Array será útil para comprender las matrices.

NumPy proporciona matrices que tienen múltiples dimensiones de elementos. Aquí hay una ilustración:

Código

 # Python program to show how to create a Numpy array # Importing numpy import numpy as np # Creating a numpy array array = np.array([4, 6, 'Harry']) print(array) print('Data type of array object: ', type(array)) 

Producción:

 ['4' '6' 'Harry'] Data type of array object: 

Como podemos ver, las matrices Numpy pertenecen a la clase ndarray.

Ejemplo para crear una matriz usando Numpy Array

Piense en el escenario en el que creamos un registro de las calificaciones de los estudiantes. Registraremos el nombre del estudiante y sus calificaciones en dos materias, programación en Python y Matrix. Crearemos una matriz bidimensional usando una matriz numpy y luego le remodelaremos.

Código

 # Python program to create a matrix using numpy array # Importing numpy import numpy as np # Creating the matrix record = np.array( [['Itika', 89, 91], ['Aditi', 96, 82], ['Harry', 91, 81], ['Andrew', 87, 91], ['Peter', 72, 79]]) matrix = np.reshape(record, (5,3)) print('The matrix is: 
', matrix) 

Producción:

 The matrix is: [['Itika' '89' '91'] ['Aditi' '96' '82'] ['Harry' '91' '81'] ['Andrew' '87' '91'] ['Peter' '72' '79']] 

Ejemplo para crear una matriz usando el método Numpy Matrix

Podemos usar numpy.matrix para crear una matriz 2D.

Código

 # Python program to show how to create a matrix using the matrix method # importing numpy import numpy as np # Creating a matrix matrix = np.matrix('3,4;5,6') print(matrix) 

Producción:

 [[3 4] [5 6]] 

Accediendo a los valores de una matriz

Los índices de una matriz se pueden utilizar para acceder a los elementos almacenados en ella. Se puede acceder a los datos almacenados en una matriz utilizando el mismo enfoque que utilizamos para una matriz bidimensional.

Código

 # Python program to access elements of a matrix # Importing numpy import numpy as np # Creating the matrix record = np.array( [['Itika', 89, 91], ['Aditi', 96, 82], ['Harry', 91, 81], ['Andrew', 87, 91], ['Peter', 72, 79]]) matrix = np.reshape(record, (5,3)) # Accessing record of Itika print( matrix[0] ) # Accessing marks in the matrix subject of Andrew print( 'Andrew's marks in Matrix subject: ', matrix[3][2] ) 

Producción:

 ['Itika' '89' '91'] Andrew's marks in Matrix subject: 91 

Métodos para crear una matriz o matriz Numpy 2-D

Existen varios métodos para crear una matriz NumPy bidimensional y, por lo tanto, una matriz. Proporcionar entradas para las filas y columnas.

int a cadena java

Podemos proporcionar números enteros, flotantes o incluso complejos. Usando el atributo dtype del método de matriz, podemos especificar el tipo de datos que queremos.

Código

 # Python program to show how to create a Numpy array # Importing numpy import numpy as np # Creating numpy arrays array1 = np.array([[4, 2, 7, 3], [2, 8, 5, 2]]) print('Array of data type integers: 
', array1) array2 = np.array([[1.5, 2.2, 3.1], [3, 4.4, 2]], dtype = 'float') print('Array of data type float: 
', array2) array3 = np.array([[5, 3, 6], [2, 5, 7]], dtype = 'complex') print('Array of data type complex numbers: 
', array3) 

Producción:

 Array of data type integers: [[4 2 7 3] [2 8 5 2]] Array of data type float: [[1.5 2.2 3.1] [3. 4.4 2. ]] Array of data type complex numbers: [[5.+0.j 3.+0.j 6.+0.j] [2.+0.j 5.+0.j 7.+0.j]] 

Matriz que tiene ceros y unos

Código

 # Python program to show how to create a Numpy array having zeroes and ones # Importing numpy import numpy as np # Creating numpy arrays zeores_array = np.zeros( (3, 2) ) print(zeores_array) ones_array = np.ones( (2, 4), dtype=np.int64 ) print(ones_array) 

Producción:

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

Aquí, hemos especificado dtype en 64 bits.

Usando los métodos arange() y shape()

Código

 # Python program to show how to create Numpy array using arrange() and shape() methods # Importing numpy import numpy as np # Creating numpy arrays array1 = np.arange( 5 ) print(array1) array2 = np.arange( 6 ).reshape( 2, 3 ) print(array2) 

Producción:

 [0 1 2 3 4] [[0 1 2] [3 4 5]] 

Operaciones de matriz de Python

Adición de matriz de Python

Agregaremos las dos matrices y usaremos el bucle for anidado a través de las matrices dadas.

Código

 # Python program to add two matrices without using numpy # Creating matrices in the form of nested lists matrix1 = [[23, 43, 12], [43, 13, 55], [23, 12, 13]] matrix2 = [[4, 2, -1], [5, 4, -34], [0, -4, 3]] matrix3 = [[0,1,0], [1,0,0], [0,0,1]] matrix4 = [[0,0,0], [0,0,0], [0,0,0]] matrices_length = len(matrix1) #Adding the three matrices using nested loops for row in range(len(matrix1)): for column in range(len(matrix2[0])): matrix4[row][column] = matrix1[row][column] + matrix2[row][column] + matrix3[row][column] #Printing the final matrix print('The sum of the matrices is = ', matrix4) 

Producción:

 The sum of the matrices is = [[27, 46, 11], [49, 17, 21], [23, 8, 17]] 

Multiplicación de matrices de Python

Operador de multiplicación de matrices de Python

En Python @ se conoce como operador de multiplicación. Veamos un ejemplo donde usaremos este operador para multiplicar dos matrices.

Código

centos vs rhel
 # Python program to show how to create a matrix using the matrix method. # importing numpy import numpy as np # Creating the matrices matrix1 = np.matrix('3,4;5,6') matrix2 = np.matrix('4,6;8,2') # Usng multiplication operator to multiply two matrices print(matrix1 @ matrix2) 

Producción:

 [[44 26] [68 42]] 

Multiplicación de matrices de Python sin usar Numpy

Otra forma de multiplicar dos matrices es mediante bucles anidados. Aquí hay un ejemplo para mostrar.

Código

 # Python program to show how to create a matrix using the matrix method # importing numpy import numpy as np # Creating two matrices matrix1 = [[4, 6, 2], [7, 4, 8], [6, 2, 7]] matrix2 = [[4, 6, 8, 2], [6, 5, 3, 7], [7, 3, 7, 6]] # Result will be a 3x4 matrix output = [[0,0,0,0], [0,0,0,0], [0,0,0,0]] # Iterating through the rows of matrix1 for i in range(len(matrix1)): # iterating through the columns of matrix2 for j in range(len(matrix2[0])): # iterating through the rows of matrix2 for k in range(len(matrix2)): output[i][j] += matrix1[i][k] * matrix2[k][j] for row in output: print(row) 

Producción:

 [66, 60, 64, 62] [108, 86, 124, 90] [85, 67, 103, 68] 

Matriz inversa de Python

Cuando es necesario resolver una ecuación para obtener el valor de una variable desconocida que satisface las ecuaciones, se calcula la inversa de una matriz, que es simplemente el recíproco de la matriz como lo haríamos en las matemáticas regulares. La inversa de una matriz es la matriz que da la matriz identidad cuando multiplicamos por la matriz original. Sólo una matriz no singular puede tener inversa. Una matriz no singular tiene un determinante distinto de cero.

Código

 # Python program to show how to calculate the inverse of a matrix # Importing the required library import numpy as np # Creating a matrix A = np.matrix('3, 4, 6; 6, 2, 7; 6, 4, 6') # Calculating the inverse of A print(np.linalg.inv(A)) 

Producción:

 [[-3.33333333e-01 -7.40148683e-17 3.33333333e-01] [ 1.25000000e-01 -3.75000000e-01 3.12500000e-01] [ 2.50000000e-01 2.50000000e-01 -3.75000000e-01]] 

Transposición de matriz de Python

Transposición de matriz de Python sin Numpy

La transposición de una matriz implica cambiar las filas y columnas. Tiene el símbolo X'. Pondremos el objeto en la fila i y la columna j de la matriz X en la fila j y la columna i de la matriz X'. En consecuencia, X' se convertirá en una matriz de 4x3 si la matriz original X es una matriz de 3x4.

comparar con cadenas en java

Código

 # Python program to find the transpose of a matrix using nested loops # Creating a matrix matrix = [[4, 6, 7, 8], [3, 7, 2, 7], [7, 3, 7, 5]] result = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] # iterating through the rows for i in range(len(matrix)): # iterating through the columns for j in range(len(matrix[0])): result[j][i] = matrix[i][j] for row in result: print(row) 

Producción:

 [4, 3, 7] [6, 7, 3] [7, 2, 7] [8, 7, 5] 

Transposición de matriz de Python usando Numpy

Podemos usar el método Matrix.transpose() en Numpy para obtener la transposición de la matriz.

Código

 # Python program to find the transpose of a matrix # importing the required module import numpy as np # Creating a matrix using matrix method matrix = np.matrix('[5, 7, 6; 4, 2, 4]') #finding transpose using matrix.transpose method transpose = matrix.transpose() print(transpose) 

Producción:

 [[5 4] [7 2] [6 4]] 

Conversión de matriz de Python en matriz

Podemos usar funciones ravel y flatten para convertir una matriz de Python en una matriz de Python.

Código

 # Python program to convert a matrix to an array # importing the required module import numpy as np # Creating a matrix using numpy matrix = np.matrix('[4, 6, 7; 5, 2, 6; 6, 3, 6]') # Using ravel() function to covert matrix to array array = matrix.ravel() print(array) # Using flatten() function to covert matrix to array array = np.asarray(matrix).flatten() print(array) # Using reshape() function to covert matrix to array array = (np.asarray(matrix)).reshape(-1) print(array) 

Producción:

 [[4 6 7 5 2 6 6 3 6]] [4 6 7 5 2 6 6 3 6] [4 6 7 5 2 6 6 3 6]