Program Python na transpozíciu matice

V tomto príklade sa naučíte transponovať maticu (ktorá je vytvorená pomocou vnoreného zoznamu).

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Python:

  • Python pre Loop
  • Zoznam Pythonu

V Pythone môžeme implementovať maticu ako vnorený zoznam (zoznam v zozname). S každým prvkom môžeme zaobchádzať ako s riadkom matice.

Napríklad X = ((1, 2), (4, 5), (3, 6))by predstavoval maticu 3x2. Prvý riadok je možné zvoliť ako X(0). Prvok v prvom stĺpci v prvom rade je možné zvoliť ako X(0)(0).

Transpozíciou matice je zámena riadkov a stĺpcov. Označuje sa ako X '. Prvok v i-tom riadku a j-om stĺpci v X sa umiestni do j-tého radu a i-teho stĺpca v X '. Takže ak X je matica 3x2, X 'bude matica 2x3.

Tu je niekoľko spôsobov, ako to dosiahnuť v Pythone.

Maticová transpozícia pomocou vnorenej sluč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ýkon

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

V tomto programe sme použili vnorené forslučky na iteráciu cez každý riadok a každý stĺpec. V každom bode umiestnime prvok X (i) (j) do výsledku (j) (i).

Maticová transpozícia pomocou porozumenia vnoreným zoznamom

 ''' 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 tohto programu je rovnaký ako vyššie. Na iteráciu cez každý prvok v matici sme použili vnorené porozumenie zoznamu.

Zaujímavé články...