Trong ví dụ này, bạn sẽ học cách chuyển một ma trận (được tạo bằng cách sử dụng danh sách lồng nhau).
Để hiểu ví dụ này, bạn nên có kiến thức về các chủ đề lập trình Python sau:
- Python cho vòng lặp
- Danh sách Python
Trong Python, chúng ta có thể triển khai ma trận dưới dạng danh sách lồng nhau (danh sách bên trong danh sách). Chúng ta có thể coi từng phần tử như một hàng của ma trận.
Ví dụ X = [[1, 2], [4, 5], [3, 6]] sẽ đại diện cho ma trận 3x2. Hàng đầu tiên có thể được chọn là X[0]. Và, phần tử trong cột đầu tiên có thể được chọn là X[0][0].
Chuyển đổi của một ma trận là sự trao đổi của các hàng và cột. Nó được ký hiệu là x '. Phần tử ở cột Ith và cột thứ j trong x sẽ được đặt ở hàng thứ j và cột ith trong x '. Vì vậy, nếu x là ma trận 3x2, x 'sẽ là ma trận 2x3.
Dưới đây là một vài cách để thực hiện điều này trong Python.
Ma trận chuyển vị bằng cách sử dụng vòng lặp lồng nhau
# 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)Đầu ra
[12, 4, 3] [7, 5, 8]Trong chương trình này, chúng tôi đã sử dụng các vòng lặp for lồng nhau để lặp qua mỗi hàng và mỗi cột. Tại mỗi điểm, chúng ta đặt phần tử x [i] [j] vào kết quả [j] [i].
Ma trận chuyển vị bằng cách sử dụng danh sách lồng nhau
''' 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)Đầu ra của chương trình này giống như trên. Chúng tôi đã sử dụng sự hiểu biết danh sách lồng nhau để lặp qua từng phần tử trong ma trận.
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luậnThe below program finds transpose of A[][] and stores the result in B[][], we can change N for different dimension.
Python3
Chuyển đổi của một ma trận thu được bằng cách thay đổi các hàng thành các cột và cột thành các hàng. Nói cách khác, chuyển vị của A [] [] [] có được bằng cách thay đổi [i] [j] thành [j] [i]. & Nbsp;
Đối với ma trận vuông: Chương trình bên dưới tìm thấy sự chuyển đổi của A [] [] và lưu trữ kết quả trong B [] [], chúng ta có thể thay đổi n cho các kích thước khác nhau. & NBSP;
[12, 4, 3] [7, 5, 8] 0____11 [12, 4, 3] [7, 5, 8] 2
[12, 4, 3] [7, 5, 8] 3 [12, 4, 3] [7, 5, 8] 4
[12, 4, 3] [7, 5, 8] 5for [12, 4, 3] [7, 5, 8] 7[12, 4, 3] [7, 5, 8] 8 [12, 4, 3] [7, 5, 8] 9''' 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)0
''' 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)1for ''' 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)3[12, 4, 3] [7, 5, 8] 8 [12, 4, 3] [7, 5, 8] 9''' 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)0
[12, 4, 3] [7, 5, 8] 5Result matrix is 1 2 3 1 2 3 1 2 3 1 2 33Result matrix is 1 2 3 1 2 3 1 2 3 1 2 34Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 1 2 3 1 2 3 1 2 34Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 1 2 3 1 2 3 1 2 34Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 1 2 3 1 2 3 1 2 34Result matrix is 1 2 3 1 2 3 1 2 3 1 2 31
[12, 4, 3] [7, 5, 8] 5Result matrix is 1 2 3 1 2 3 1 2 3 1 2 33Modified matrix is 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Modified matrix is 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Modified matrix is 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Modified matrix is 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 44Result matrix is 1 2 3 1 2 3 1 2 3 1 2 31
[12, 4, 3] [7, 5, 8] 5Result matrix is 1 2 3 1 2 3 1 2 3 1 2 33[12, 4, 3] [7, 5, 8] 2Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45[12, 4, 3] [7, 5, 8] 2Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45[12, 4, 3] [7, 5, 8] 2Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45[12, 4, 3] [7, 5, 8] 2X[0]1
''' 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)7''' 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)8[12, 4, 3] [7, 5, 8] 1 Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 40
X[0]5
Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 41[12, 4, 3] [7, 5, 8] 1 Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 43Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 44Result matrix is 1 2 3 1 2 3 1 2 3 1 2 31
for [12, 4, 3] [7, 5, 8] 7[12, 4, 3] [7, 5, 8] 8 [12, 4, 3] [7, 5, 8] 9''' 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)0
[12, 4, 3] [7, 5, 8] 5for ''' 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)3[12, 4, 3] [7, 5, 8] 8 [12, 4, 3] [7, 5, 8] 9''' 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)0
''' 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)1X[0]6for3for4for5[12, 4, 3] [7, 5, 8] 1for7
[12, 4, 3] [7, 5, 8] 5X[0]6[12, 4, 3] [7, 5, 8] 00
Output:
Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 4X[0]2[12, 4, 3]
[7, 5, 8]
1 X[0]4O(n2)
Auxiliary Space: O(n2)
‘The below program finds transpose of A[][] and stores the result in B[][].
Python3
Độ phức tạp về thời gian: O (N2) Không gian phụ trợ: O (N2)
Chuyển đổi của một ma trận thu được bằng cách thay đổi các hàng thành các cột và cột thành các hàng. Nói cách khác, chuyển vị của A [] [] [] có được bằng cách thay đổi [i] [j] thành [j] [i]. & Nbsp;
Đối với ma trận vuông: Chương trình bên dưới tìm thấy sự chuyển đổi của A [] [] và lưu trữ kết quả trong B [] [], chúng ta có thể thay đổi n cho các kích thước khác nhau. & NBSP;
[12, 4, 3] [7, 5, 8] 0____11 [12, 4, 3] [7, 5, 8] 2
[12, 4, 3] [7, 5, 8] 3 [12, 4, 3] [7, 5, 8] 4
[12, 4, 3] [7, 5, 8] 5for [12, 4, 3] [7, 5, 8] 7[12, 4, 3] [7, 5, 8] 8 [12, 4, 3] [7, 5, 8] 9''' 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)0
''' 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)1for ''' 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)3[12, 4, 3] [7, 5, 8] 8 [12, 4, 3] [7, 5, 8] 9''' 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)0
[12, 4, 3] [7, 5, 8] 5Result matrix is 1 2 3 1 2 3 1 2 3 1 2 33Result matrix is 1 2 3 1 2 3 1 2 3 1 2 34Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 1 2 3 1 2 3 1 2 34Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 1 2 3 1 2 3 1 2 34Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 1 2 3 1 2 3 1 2 34Result matrix is 1 2 3 1 2 3 1 2 3 1 2 31
''' 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)7''' 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)8[12, 4, 3] [7, 5, 8] 1 Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 40
Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 41[12, 4, 3] [7, 5, 8] 1 Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 43Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 44Result matrix is 1 2 3 1 2 3 1 2 3 1 2 31
X[0]5
X[0]6X[0]7X[0]8X[0]9
for [12, 4, 3] [7, 5, 8] 7[12, 4, 3] [7, 5, 8] 8 [12, 4, 3] [7, 5, 8] 9''' 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)0
X[0]2[12, 4, 3] [7, 5, 8] 1 X[0]4
''' 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)1X[0]6for3for4for5[12, 4, 3] [7, 5, 8] 1for7
[12, 4, 3] [7, 5, 8] 5X[0]6[12, 4, 3] [7, 5, 8] 95
Output:
Result matrix is 1 2 3 1 2 3 1 2 3 1 2 3‘:
O(n*m)
Auxiliary Space: O(n*m)
Độ phức tạp về thời gian: O (N2) Không gian phụ trợ: O (N2)
Python3
Chuyển đổi của một ma trận thu được bằng cách thay đổi các hàng thành các cột và cột thành các hàng. Nói cách khác, chuyển vị của A [] [] [] có được bằng cách thay đổi [i] [j] thành [j] [i]. & Nbsp;
Đối với ma trận vuông: Chương trình bên dưới tìm thấy sự chuyển đổi của A [] [] và lưu trữ kết quả trong B [] [], chúng ta có thể thay đổi n cho các kích thước khác nhau. & NBSP;
[12, 4, 3] [7, 5, 8] 0____11 [12, 4, 3] [7, 5, 8] 2
[12, 4, 3] [7, 5, 8] 3 [12, 4, 3] [7, 5, 8] 4
[12, 4, 3] [7, 5, 8] 5for [12, 4, 3] [7, 5, 8] 7[12, 4, 3] [7, 5, 8] 8 [12, 4, 3] [7, 5, 8] 9''' 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)0
''' 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)1for ''' 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)3[12, 4, 3] [7, 5, 8] 8 [12, 4, 3] [7, 5, 8] 9''' 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)0
''' 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)7''' 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)8[12, 4, 3] [7, 5, 8] 1 Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 40
[12, 4, 3] [7, 5, 8] 5Result matrix is 1 2 3 1 2 3 1 2 3 1 2 33Modified matrix is 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Modified matrix is 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Modified matrix is 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 44Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45Modified matrix is 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 44Result matrix is 1 2 3 1 2 3 1 2 3 1 2 31
[12, 4, 3] [7, 5, 8] 5Result matrix is 1 2 3 1 2 3 1 2 3 1 2 33[12, 4, 3] [7, 5, 8] 2Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45[12, 4, 3] [7, 5, 8] 2Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45[12, 4, 3] [7, 5, 8] 2Result matrix is 1 2 3 4 2 2 3 4 3 3 3 4 4 4 4 45[12, 4, 3] [7, 5, 8] 2X[0]1
''' 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)61
X[0]6X[0]7''' 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)64X[0]9
for [12, 4, 3] [7, 5, 8] 7[12, 4, 3] [7, 5, 8] 8 [12, 4, 3] [7, 5, 8] 9''' 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)0
[12, 4, 3] [7, 5, 8] 5for ''' 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)3[12, 4, 3] [7, 5, 8] 8 [12, 4, 3] [7, 5, 8] 9''' 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)0
''' 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)1X[0]6''' 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)79for4for5[12, 4, 3] [7, 5, 8] 1for7
[12, 4, 3] [7, 5, 8] 5X[0]6[12, 4, 3] [7, 5, 8] 00
Output:
Modified matrix is 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4Độ phức tạp về thời gian: O (N2) Không gian phụ trợ: O (1): O(n2)
Auxiliary Space: O(1)
Vui lòng tham khảo đầy đủ bài viết về chương trình để tìm chuyển đổi ma trận để biết thêm chi tiết!