Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

หา Transpose ของเมทริกซ์ใน Python

ในบทความนี้ เราจะเรียนรู้วิธีแก้ปัญหาตามข้อกำหนดด้านล่าง

ข้อกำหนดปัญหา − เราได้รับเมทริกซ์ ต้องแสดง transpose ของเมทริกซ์

Transpose ของเมทริกซ์ได้โดยการแทนค่าที่ A[i][j] ด้วย A[j][i]

มาสังเกตแนวคิดในการนำไปใช้ด้านล่าง

วิธีที่ 1: สร้างเมทริกซ์ใหม่เก็บ transpose ของเมทริกซ์อินพุต

ตัวอย่าง

def transpose(A, B):
    for i in range(M):
        for j in range(N):
            B[i][j] = A[j][i]

# driver code
M = N = 4
A = [
    [0, 1, 1, 0],
    [0, 2, 0, 2],
    [0, 3, 0, 3],
    [0, 0, 4, 4]
]
B = A[:][:]  # empty matrix
transpose(A, B)
print("Transformed matrix is")
for i in range(N):
    for j in range(N):
        print(B[i][j], " ", end='')
    print()

ผลลัพธ์

Transformed matrix is
0 0 0 0
0 2 3 0
0 3 0 4
0 0 4 4

วิธีที่ 2: เก็บ transpose ลงในเมทริกซ์อินพุตเดิม (In-place)

ตัวอย่าง

# function
def transpose(A):
    for i in range(M):
        for j in range(i+1, N):
            A[i][j], A[j][i] = A[j][i], A[i][j]

M = N = 4
A = [
    [0, 1, 1, 0],
    [0, 2, 0, 2],
    [0, 3, 0, 3],
    [0, 0, 4, 4]
]
transpose(A)
print("Transformed matrix is")
for i in range(M):
    for j in range(N):
        print(A[i][j], " ", end='')
    print()

ผลลัพธ์

Transformed matrix is
0 0 0 0
0 2 3 0
0 3 0 4
0 0 4 4

สรุป

ในบทความนี้ เราได้เรียนรู้วิธี transpose เมทริกซ์ ทั้งแบบสร้างใหม่และแบบ in-place (สำหรับเมทริกซ์จัตุรัส)