Program Python k transpozici matice

V tomto příkladu se naučíte transponovat matici (která je vytvořena pomocí vnořeného seznamu).

Abychom porozuměli tomuto příkladu, měli byste znát následující témata programování v Pythonu:

  • Python pro smyčku
  • Seznam Pythonu

V Pythonu můžeme implementovat matici jako vnořený seznam (seznam uvnitř seznamu). S každým prvkem můžeme zacházet jako s řadou matice.

Například X = ((1, 2), (4, 5), (3, 6))by představoval matici 3x2. První řádek lze vybrat jako X(0). Prvek v prvním sloupci prvního řádku lze vybrat jako X(0)(0).

Transpozice matice je záměna řádků a sloupců. Označuje se jako X '. Prvek v i-tých řádcích a j-tý sloupec v X bude umístěn v j-tých řádcích a i-tých sloupcích v X '. Takže pokud X je matice 3x2, X 'bude matice 2x3.

Tady je několik způsobů, jak toho v Pythonu dosáhnout.

Maticová transpozice pomocí vnořené smyčky

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

Výstup

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

V tomto programu jsme použili vnořené forsmyčky k iteraci přes každý řádek a každý sloupec. V každém bodě umístíme prvek X (i) (j) do výsledku (j) (i).

Transpozice matice pomocí porozumění vnořenému seznamu

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

Výstup tohoto programu je stejný jako výše. Pro iteraci každého prvku v matici jsme použili porozumění vnořeného seznamu.

Zajímavé články...