เปลี่ยนเมทริกซ์หมายความว่าเรากำลังเปลี่ยนคอลัมน์เป็นแถว มาทำความเข้าใจกันด้วยตัวอย่างว่าถ้าดูเหมือนหลังทรานสโพสแล้วเป็นอย่างไร
สมมติว่าคุณมีเมทริกซ์ดั้งเดิมประมาณ -
x = [[1,2][3,4][5,6]]
ในเมทริกซ์ด้านบน “x” เรามีสองคอลัมน์ ประกอบด้วย 1, 3, 5 และ 2, 4, 6
ดังนั้นเมื่อเราสลับระหว่างเมทริกซ์ "x" ด้านบน คอลัมน์จะกลายเป็นแถว ดังนั้นเมทริกซ์ที่ย้ายมาด้านบนจะหน้าตาประมาณนี้ -
x1 = [[1, 3, 5][2, 4, 6]]
ดังนั้นเราจึงมีเมทริกซ์ 'x1' อีกอันหนึ่ง ซึ่งถูกจัดระเบียบต่างกันโดยมีค่าต่างกันในที่ต่างๆ
ด้านล่างนี้คือสองวิธีในการทำสิ่งนี้ให้สำเร็จใน python -
วิธีที่ 1 - เมทริกซ์ทรานสโพสโดยใช้ Nested Loop -
#Original Matrix x = [[1,2],[3,4],[5,6]] 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)
ผลลัพธ์
[1, 3, 5] [2, 4, 6]
วิธีที่ 2 - เมทริกซ์ทรานสโพสโดยใช้ Nested List Comprehension
#Original Matrix x = [[1,2],[3,4],[5,6]] result = [[x[j][i] for j in range(len(x))] for i in range(len(x[0]))] for r in Result print(r)
ผลลัพธ์
[1, 3, 5] [2, 4, 6]
ความเข้าใจรายการช่วยให้เราเขียนโค้ดที่กระชับและควรใช้บ่อยๆ ใน python
วิธีที่ 3 - Matrix Transpose โดยใช้ Zip
#Original Matrix x = [[1,2],[3,4],[5,6]] result = map(list, zip(*x)) for r in Result print(r)
ผลลัพธ์
[1, 3, 5] [2, 4, 6]
วิธีที่ 4 - เมทริกซ์ทรานสโพสโดยใช้ numpy libraryNumpy library เป็นแพ็คเกจการประมวลผลอาร์เรย์ที่สร้างขึ้นเพื่อจัดการกับอาร์เรย์หลายมิติขนาดใหญ่อย่างมีประสิทธิภาพ
import numpy #Original Matrix x = [[1,2],[3,4],[5,6]] print(numpy.transpose(x))
ผลลัพธ์
[[1 3 5] [2 4 6]]