Transponer una array en una sola línea en Python

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] .

  1. 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]
    
  1. 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)).

  1. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *