Maison > développement back-end > Tutoriel Python > Comment puis-je transposer efficacement une matrice 2D en Python ?

Comment puis-je transposer efficacement une matrice 2D en Python ?

Susan Sarandon
Libérer: 2024-12-22 06:51:09
original
427 Les gens l'ont consulté

How Can I Efficiently Transpose a 2D Matrix in Python?

Transposition de matrice en Python

La transposition de matrice consiste à retourner les lignes et les colonnes d'une matrice pour créer une nouvelle matrice avec ses dimensions d'origine inversées. Voyons comment développer une fonction Python pour transposer une matrice 2D.

Vous avez fourni une fonction Python, mais elle ne fonctionne pas correctement. Examinons votre code et identifions les erreurs. Dans votre fonction :

  • Vous créez une nouvelle matrice transposée avec la bonne hauteur mais une largeur incorrecte. Il devrait s'agir de [Aucun] * len(anArray) au lieu de [Aucun] * len(anArray[0]).
  • Vous écrasez les valeurs dans transposed[t] à chaque itération. Pour créer une nouvelle colonne, vous devez ajouter la valeur à la liste existante dans transposed[t].

Voici une version corrigée de votre fonction :

def matrixTranspose(anArray):
    transposed = [[] for _ in range(len(anArray))]
    for t in range(len(anArray)):
        for tt in range(len(anArray[t])):
            transposed[tt].append(anArray[t][tt])
    return transposed
Copier après la connexion

Un autre concis La solution existe à l'aide de la fonction zip intégrée de Python, qui combine les éléments correspondants de plusieurs itérables. Il transpose la matrice en créant des tuples à partir des colonnes puis en les reconvertissant en listes :

transposed = list(zip(*anArray))
Copier après la connexion

Pour Python 3, préférez utiliser l'opérateur * pour décompresser les tuples et créer une liste de listes :

transposed = [*zip(*anArray)]
Copier après la connexion

Ces méthodes transposeront efficacement une matrice 2D en Python.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal