Cómo calcular las matrices en Python sin Numpy

Cómo calcular las matrices en Python sin Numpy
La serie vertical de objetos en una matriz de pitón se conoce generalmente como las "columnas", mientras que la serie horizontal de cosas se conoce como las "filas."Al igual que una lista anidada, las filas y las columnas se colocaron encima de la otra. Si una matriz tiene filas "K" y columnas "M", y si "K" y "M" son enteros positivos, el orden de dicho objeto de matriz está determinado por "K-by-M".

Una matriz puede contener cadenas, números y otros tipos de objetos de datos. En una matriz, los datos se apilan tanto en columnas como en filas. Una estructura de datos clave que respalda los cálculos en ciencias y matemáticas es la matriz. Dado que Python no proporciona un tipo incorporado para un objeto de matriz, tratamos la lista entre listas o incluso una lista anidada como matriz.

Cómo funcionan las matrices en Python

Los datos se escriben en una matriz bidimensional para generar una matriz. El procedimiento es el siguiente:

[[1 3 5 7 9]
[2 4 6 8 10]
[0 8 7 4]]

Tiene una matriz de 3 por 5 como pantalla. Por lo tanto, su tamaño es 3 por 5. Los datos dentro de esta matriz consisten en objetos del tipo entero de tipo de datos. La fila superior, fila1, tiene los valores 1, 3, 5, 7 y 9, mientras que la fila2, junto con la fila 3, tiene los valores (2, 4, 6, 8) y respectivamente (0, 8, 7, 4). La columna1 contiene valores de (1, 2, 0), así como la columna2 tiene valores de (3, 4, 8), etc.

Python nos permite almacenar todos los datos en una matriz con dos dimensiones. Podemos agregar matrices, multiplicarlas, transponerlas y ejecutar otras operaciones en una matriz. Utilizando matrices, podemos construir una matriz de Python y usarla de manera similar. Hablemos de diferentes ejemplos de matrices de pitón.

Adición de Matriz de Python

Tomaremos las dos matrices y las agregaremos para iterar a través de ellas usando un bucle anidado para.

matriz1 = [[2, 4, 1],
[4, 1, 5],
[3, 6, 7]]
matrix2 = [[4, 2, -1],
[5, 6, -3],
[0, -4, 3]]
matriz3 = [[0,1,0],
[1,0,0],
[0,0,1]]
matrix4 = [[0,0,1],
[0,1,0],
[1,0,0]]
matrices_length = len (matrix1)
para fila en rango (len (matrix1)):
para columna en el rango (len (matrix2 [0])):
matrix4 [fila] [columna] = matrix1 [fila] [columna] + matrix2 [fila] [columna] + matrix3 [fila] [columna]
imprimir ("La suma de las matrices es =", matrix4)

Inicialmente, en lugar de usar Numpy, construimos directamente tres matrices que tienen el orden 3 por 3. Especificamos el orden o la longitud de la función de matriz 1 como la función len () y otras, respectivamente. Usando bucles anidados, primero, se agregaron las tres matrices. El total de las tres matrices se especificó luego como Matriz 4, y utilizamos la función print () para mostrar los resultados.

Transponer una matriz en Python

Al cambiar los elementos de las columnas y filas de la matriz, podríamos transponerlos. Usando diferentes ejemplos, demostraremos cómo obtener una transposición de una matriz usando Python sin Numpy.

La transposición de una matriz está representada por el símbolo en. Por ejemplo, supongamos que tenemos una matriz "A" que tiene el orden de:

3 por 2

Entonces la transposición de A es:

2 por 3 matriz

Calcular la transposición de una matriz con la ayuda de un bucle anidado

El bucle anidado se puede usar para iterar repetidamente a través de las columnas y las filas de incluso una lista anidada. Inserte el elemento en la fila "iTh" y la columna "JTH" de la matriz F junto con la fila "JTH" y la columna "ith" de la matriz "f^t" para obtener la transposición de la matriz. "F^t" será una matriz 2 por 3 suponiendo que "F" sea una matriz de 3 por 2.

F = [[2, 3],
[5, 7],
[8, 1]]
F_t = [[0, 0, 0],
[0, 0, 0]]
para Q en el rango (len (f)):
para w en el rango (len (f [0])):
F_t [w] [q] = f [q] [w]
para Q en f_t:
Imprimir (Q)

Primero se crea una matriz de transposición de la matriz original y una matriz "F" con un orden de 3 por 2. El programa anterior utiliza bucles anidados "para", continuamente iterados sobre cada fila y posteriormente cada columna. En cada iteración, agregamos un elemento de "f [q] [w]" en "ft [w] [q]". Finalmente, ejecutamos el método print () para representar la transposición.

Uso de una comprensión de la lista anidada para encontrar la transposición de la matriz

Se produce una lista anidada cuando se realiza una comprensión de la lista dentro de otra comprensión de la lista. La siguiente es la sintaxis para comprender listas anidadas:

new_list = [[EXPR. Para un elemento de lista] para un elemento de lista]

Del mismo modo, podemos obtener una transposición de una matriz utilizando la comprensión de la lista anidada en un enfoque de bucle anidado.

J = [[1, 3],
[4, 6],
[9, 2]]
J_t = [[j [v] [c] para v en el rango (len (j))] para c en el rango (len (j [0]))]]
para c en j_t:
Imprimir (c)

Comenzamos creando matriz "j", teniendo el pedido 3 por 2. La comprensión de la lista anidada en el código que precede a los bucles sobre los miembros de la matriz una vez a la vez e inserta los elementos de "J [V]" en algún lugar en la ubicación "J_T [V]". Las columnas de la matriz se iteran en la primera parte de dicha comprensión de la lista anidada, mientras que sus filas se repiten en la segunda columna.

Multiplicación de dos matrices en Python

El proceso binario de matrices multiplicar crea la matriz usando dos matrices. Utilizando bucles anidados y comprensión de la lista, podemos multiplicar matrices en Python.

La columna de la primera matriz y el recuento de segunda fila deben coincidir para lograr la multiplicación de la matriz. La matriz que obtuvimos al final debido a la multiplicación de la matriz consistirá en el mismo orden que la matriz original. A continuación se muestra una ilustración de la multiplicación de matriz.

Uso de la lista anidada para encontrar la multiplicación de la matriz

Se puede crear una matriz en Python como algo más que una lista anidada, una especie de lista dentro de una lista. Una fila de una matriz corresponde a cada valor de una lista anidada. Veamos una instancia de un bucle anidado utilizado para multiplicar dos matrices.

N = [[9, 1, 7],
[3, 5, 6],
[4, 7, 8]]
M = [[2, 3, 5, 6],
[8, 9, 1, 2],
[4, 5, 9, 3]]
resultado = [[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
para u en rango (len (n)):
para o en el rango (len (m [0])):
para p en el rango (len (m)):
resultado [u] [o] += n [u] [p] * m [p] [o]
para d en el resultado:
Imprimir (d)

En este ejemplo, usaremos bucles anidados para ejecutar un programa que multiplique dos matrices, pero antes de hacerlo, generaremos dos matrices, "n" y "m", que son 3 por 3 y 3- by-4 en orden, respectivamente, así como una tercera matriz que tiene el orden 3 por 4. A continuación, pasamos por un proceso de iteración donde utilizamos los elementos de las filas en "n", las columnas en "M" y las filas en "M". Aplicamos la instrucción de impresión para mostrar la multiplicación de las matrices definidas.

Utilización de la comprensión de la lista anidada para encontrar la multiplicación de matrices

La comprensión de la lista anidada es el proceso de realizar una comprensión de la lista juntos dentro de la comprensión de la lista, lo que resulta en algún tipo de lista anidada

Sintaxis:

new_list = [[EXPR. Para un elemento de lista] para un elemento de lista]

Del mismo modo, con ese mismo enfoque de bucle anidado, también podemos realizar la multiplicación de dos matrices utilizando fácilmente el método de comprensión de la lista anidada.

E = [[8, 1, 3],
[8, 7, 3],
[7, 3, 5]]
R = [[2, 3, 6, 8],
[9, 8, 5, 3],
[1, 3, 8, 9]]
resultado = [[sum (f*g para f, g en zip (e_row, r_col))
para r_col en zip (*r)] para e_row en e]
para z en el resultado:
Imprimir (z)

Para obtener el total de los productos de cada multiplicación de fila por columna, iteramos sobre las columnas dentro de la matriz "R" y las filas dentro de la matriz "E" en el programa. Para obtener las columnas de la matriz "r", utilizamos el método zip (). Requerimos los elementos de la fila en la matriz "E" como el segundo componente de una comprensión de la lista anidada para calcular la suma de productos para cada fila dentro de esta lista anidada. Al final, la declaración de impresión se empleará.

Conclusión

En esta guía, hemos visto algunas formas alternativas para calcular manualmente la adición de matriz, multiplicación y transposición en lugar de numpy. Estos enfoques incluyen listas anidadas, así como la comprensión de las listas anidadas. Además, se presentan varios programas para demostrar cómo se pueden utilizar estos enfoques y funcionar de manera diferente con suma, multiplicación y transposición de una matriz.