Heim >Backend-Entwicklung >Python-Tutorial >Wie transponiere ich eine Matrix in Python mit Zip und dem *-Operator?

Wie transponiere ich eine Matrix in Python mit Zip und dem *-Operator?

DDD
DDDOriginal
2024-10-19 09:02:30766Durchsuche

How to Transpose a Matrix in Python Using Zip and the * Operator?

Transponieren einer Matrix in Python

Das Transponieren einer Matrix beinhaltet das Vertauschen der Zeilen und Spalten, was zu einer neuen Matrix führt, in der das j-te Element in der Die i-te Zeile wird zum i-ten Element in der j-ten Zeile. Wenn Sie beispielsweise die folgende 2x3-Matrix transponieren:

A=[[1, 2, 3],
   [4, 5, 6]]

erzeugt die transponierte Matrix:

[[1, 4],
[2, 5],
[3, 6]]

Verwenden von Zip mit *

Ein effizienter Eine Möglichkeit, eine Matrix in Python zu transponieren, besteht darin, die Funktion zip() in Verbindung mit dem *-Operator zu verwenden:

<code class="python">def transpose(matrix):
  return zip(*matrix)</code>

Dieser Ansatz iteriert über die Spalten der Eingabematrix und erzeugt Tupel, die die Zeilen der Transponierten darstellen Matrix. Wenn eine Liste von Listen als Ausgabe gewünscht wird, kann Folgendes verwendet werden:

<code class="python">def transpose(matrix):
  return [list(x) for x in zip(*matrix)]</code>

Alternativ kann man die Funktion map() zusammen mit dem Listenkonstruktor anwenden:

<code class="python">def transpose(matrix):
  return map(list, zip(*matrix))</code>

Diese Methoden tauschen effektiv die Indizes der Eingabematrix aus, was zu einer transponierten Matrix führt, die die gewünschten Kriterien erfüllt.

Das obige ist der detaillierte Inhalt vonWie transponiere ich eine Matrix in Python mit Zip und dem *-Operator?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn