Program w Pythonie do transpozycji macierzy

W tym przykładzie nauczysz się transponować macierz (utworzoną przy użyciu listy zagnieżdżonej).

Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w Pythonie:

  • Python for Loop
  • Lista Pythona

W Pythonie możemy zaimplementować macierz jako listę zagnieżdżoną (lista wewnątrz listy). Każdy element możemy traktować jako wiersz macierzy.

Na przykład X = ((1, 2), (4, 5), (3, 6))reprezentowałaby macierz 3x2. Pierwszy wiersz można wybrać jako X(0). I element w pierwszej kolumnie w pierwszym wierszu można wybrać jako X(0)(0).

Transpozycja macierzy to zamiana wierszy i kolumn. Jest oznaczony jako X '. Element w i-tym wierszu i j-tej kolumnie w X zostanie umieszczony w j-tym wierszu i i-tej kolumnie w X '. Więc jeśli X jest macierzą 3x2, X 'będzie macierzą 2x3.

Oto kilka sposobów osiągnięcia tego w Pythonie.

Transpozycja macierzy za pomocą zagnieżdżonej pętli

 # 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) 

Wynik

 (12, 4, 3) (7, 5, 8) 

W tym programie użyliśmy zagnieżdżonych forpętli do iteracji po każdym wierszu i każdej kolumnie. W każdym punkcie umieszczamy element X (i) (j) w wyniku (j) (i).

Transpozycja macierzy przy użyciu funkcji rozumienia list zagnieżdżonych

 ''' 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)

Wynik tego programu jest taki sam jak powyżej. Użyliśmy zagnieżdżonego przetwarzania list, aby iterować po każdym elemencie macierzy.

Interesujące artykuły...