Computer >> Máy Tính >  >> Lập trình >> Python

Hoán vị một ma trận trong Python?

Chuyển đổi ma trận có nghĩa là chúng tôi đang chuyển các cột của nó thành các hàng của nó. Hãy hiểu nó bằng một ví dụ sẽ như thế nào nếu sau khi hoán vị.

Giả sử bạn có ma trận ban đầu giống như -

x = [[1,2][3,4][5,6]]

Trong ma trận “x” ở trên, chúng ta có hai cột, chứa 1, 3, 5 và 2, 4, 6.

Vì vậy, khi chúng ta chuyển ma trận trên "x", các cột sẽ trở thành các hàng. Vì vậy, phiên bản chuyển vị của ma trận ở trên sẽ trông giống như -

x1 = [[1, 3, 5][2, 4, 6]]

Vì vậy, chúng ta có một ma trận khác ‘x1’, được tổ chức khác nhau với các giá trị khác nhau ở những vị trí khác nhau.

Dưới đây là một số cách để thực hiện điều này trong python -

Phương pháp 1 - Chuyển vị ma trận bằng cách sử dụng Vòng lặp lồng nhau -

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

Kết quả

[1, 3, 5]
[2, 4, 6]

Phương pháp 2 - Chuyển vị ma trận bằng cách sử dụng Tính năng hiểu danh sách lồng nhau.

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

Kết quả

[1, 3, 5]
[2, 4, 6]

Khả năng hiểu danh sách cho phép chúng tôi viết mã ngắn gọn và nên được sử dụng thường xuyên trong python.

Phương pháp 3 - Ma trận Transpose sử dụng Zip

#Original Matrix
x = [[1,2],[3,4],[5,6]]
result = map(list, zip(*x))
for r in Result
   print(r)

Kết quả

[1, 3, 5]
[2, 4, 6]

Phương pháp 4 - Chuyển vị ma trận bằng cách sử dụng thư viện numpy Thư việnumpy là một gói xử lý mảng được xây dựng để thao tác hiệu quả mảng đa chiều lớn.

import numpy
#Original Matrix
x = [[1,2],[3,4],[5,6]]
print(numpy.transpose(x))

Kết quả

[[1 3 5]
[2 4 6]]