En este ejemplo, aprenderá a transponer una matriz (que se crea utilizando una lista anidada).
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Python:
- Python para bucle
- Lista de Python
En Python, podemos implementar una matriz como una lista anidada (lista dentro de una lista). Podemos tratar cada elemento como una fila de la matriz.
Por ejemplo X = ((1, 2), (4, 5), (3, 6))
, representaría una matriz de 3x2. La primera fila se puede seleccionar como X(0)
. Y, el elemento en la primera columna de la primera fila se puede seleccionar como X(0)(0)
.
La transposición de una matriz es el intercambio de filas y columnas. Se denota como X '. El elemento de la i-ésima fila y la j-ésima columna de X se colocará en la j-ésima fila y la i-ésima columna de X '. Entonces, si X es una matriz de 3x2, X 'será una matriz de 2x3.
Aquí hay un par de formas de lograr esto en Python.
Transposición de matriz usando bucle anidado
# Program to transpose a matrix using a nested loop X = ((12,7), (4 ,5), (3 ,8)) result = ((0,0,0), (0,0,0)) # iterate through rows for i in range(len(X)): # iterate through columns for j in range(len(X(0))): result(j)(i) = X(i)(j) for r in result: print(r)
Salida
(12, 4, 3) (7, 5, 8)
En este programa, hemos utilizado for
bucles anidados para recorrer cada fila y cada columna. En cada punto colocamos el elemento X (i) (j) en el resultado (j) (i).
Transposición de matrices mediante la comprensión de listas anidadas
''' Program to transpose a matrix using list comprehension''' X = ((12,7), (4 ,5), (3 ,8)) result = ((X(j)(i) for j in range(len(X))) for i in range(len(X(0)))) for r in result: print(r)
La salida de este programa es la misma que la anterior. Hemos utilizado la comprensión de listas anidadas para recorrer cada elemento de la matriz.