Python programma matricas transponēšanai

Šajā piemērā jūs iemācīsities transponēt matricu (kuru izveido, izmantojot ligzdotu sarakstu).

Lai saprastu šo piemēru, jums jābūt zināšanām par šādām Python programmēšanas tēmām:

  • Python for Loop
  • Python saraksts

Python mēs varam ieviest matricu kā ligzdotu sarakstu (saraksts saraksta iekšpusē). Mēs varam traktēt katru elementu kā matricas rindu.

Piemēram, X = ((1, 2), (4, 5), (3, 6))tas pārstāv 3x2 matricu. Pirmo rindu var izvēlēties kā X(0). Pirmās rindas pirmās kolonnas elementu var izvēlēties kā X(0)(0).

Matricas transponēšana ir rindu un kolonnu apmaiņa. To apzīmē kā X '. Elements X. rindā un j kolonnā tiks novietots X. j.rindā un X. kolonnā. Tātad, ja X ir 3x2 matrica, X 'būs 2x3 matrica.

Šeit ir pāris veidi, kā to paveikt Python.

Matricas transponēšana, izmantojot ligzdoto cilpu

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

Rezultāts

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

Šajā programmā mēs esam izmantojuši ligzdotas forcilpas, lai atkārtotu katru rindu un katru kolonnu. Katrā punktā X (i) (j) elementu ievietojam rezultātā (j) (i).

Matricas transponēšana, izmantojot izpratni par ligzdotu sarakstu

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

Šīs programmas rezultāts ir tāds pats kā iepriekš. Mēs esam izmantojuši ligzdotu sarakstu izpratni, lai atkārtotu katru matricas elementu.

Interesanti raksti...