La transposición de una array es una tarea que todos podemos realizar muy fácilmente en python (usando un bucle anidado). Pero hay algunas formas interesantes de hacer lo mismo en una sola línea.
En Python, podemos implementar una array como lista anidada (lista dentro de una lista). Cada elemento se trata como una fila de la array. Por ejemplo m = [[1, 2], [4, 5], [3, 6]] representa una array de 3 filas y 2 columnas.
Primer elemento de la lista – m[0] y elemento en la primera fila, primera columna – m[0][0] .
- Uso de la comprensión de listas anidadas: la comprensión de listas anidadas se utiliza para iterar a través de cada elemento de la array. En el ejemplo dado, iteramos a través de cada elemento de la array (m) en columna principal y asignamos el resultado a la array rez, que es la transpuesta de m.
m
=
[[
1
,
2
],[
3
,
4
],[
5
,
6
]]
for
row
in
m :
print
(row)
rez
=
[[m[j][i]
for
j
in
range
(
len
(m))]
for
i
in
range
(
len
(m[
0
]))]
print
(
"\n"
)
for
row
in
rez:
print
(row)
Producción:
[1, 2] [3, 4] [5, 6] [1, 3, 5] [2, 4, 6]
- Uso de zip: Zip devuelve un iterador de tuplas, donde la i-ésima tupla contiene el i-ésimo elemento de cada una de las secuencias de argumentos o iterables. En este ejemplo, descomprimimos nuestra array usando * y luego la comprimimos para obtener la transposición.
matrix
=
[(
1
,
2
,
3
),(
4
,
5
,
6
),(
7
,
8
,
9
),(
10
,
11
,
12
)]
for
row
in
matrix:
print
(row)
print
(
"\n"
)
t_matrix
=
zip
(
*
matrix)
for
row
in
t_matrix:
print
(row)
Producción:
(1, 2, 3) (4, 5, 6) (7, 8, 9) (10, 11, 12) (1, 4, 7, 10) (2, 5, 8, 11) (3, 6, 9, 12)
Nota: – Si desea que su resultado tenga el formato [[1,4,7,10][2,5,8,11][3,6,9,12]] , puede usar t_matrix=map(list, zip(*array)).
- Uso de numpy: NumPy es un paquete de procesamiento de arrays de propósito general diseñado para manipular de manera eficiente grandes arrays multidimensionales. El método de transposición devuelve una vista transpuesta de la array multidimensional pasada.
# You need to install numpy in order to import it
# Numpy transpose returns similar result when
# applied on 1D matrix
import
numpy
matrix
=
[[
1
,
2
,
3
],[
4
,
5
,
6
]]
print
(matrix)
print
(
"\n"
)
print
(numpy.transpose(matrix))
O simplemente usando “.T” después de la variable
# You need to install numpy in order to import it
import
numpy as np
matrix
=
np.array([[
1
,
2
,
3
],[
4
,
5
,
6
]])
print
(matrix)
print
(
"\n"
)
print
(matrix.T)
Producción:
[[1 2 3] [4 5 6]] [[1 4] [2 5] [3 6]]
Nota: – «.T» solo funciona en arrays numpy
Este artículo es una contribución de Mayank Rawat y simplemente modificado por Md. Tahmid Hasan . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA