Cách in ma trận n*n trong python

Một thứ không thể tách rời khi chúng ta lập trình đó là ma trận. Đối với ứng dụng đơn giản, dữ liệu của chúng tôi có thể chỉ bao gồm 1 hàng hoặc 1 cột, vì vậy chúng tôi không coi đó là ma trận. Tuy nhiên, khi chúng tôi cần xử lý quá nhiều dữ liệu, chúng tôi cần xử lý những dữ liệu đó trong ma trận MxN hoặc NxN. Chúng ta có thể xử lý nó theo cách truyền thống bằng python. Thông thường mọi người sẽ tạo nó dưới dạng danh sách bên trong danh sách. Hoặc cách nhanh nhất là sử dụng Numpy từ thư viện Scipy. Nên sử dụng Numpy đặc biệt khi bạn cần hiển thị kết quả ở dạng ma trận. Mặt khác, nếu dữ liệu của bạn rất lớn, Numpy sẽ chỉ hiển thị dưới dạng 3 dữ liệu đầu tiên và 3 dữ liệu cuối cùng

Đầu tiên chúng ta cần xem xét hàng và cột vì nó. [nguồn ảnh]

Hàng là tất cả dữ liệu theo hàng ngang, khi cột ở hàng dọc. Vì vậy, hàng đầu tiên [hàng=0] bao gồm

[[0,0,0],[0,0,0],[0,0,0]]
2, hàng ở giữa [hàng=1] là
[[0,0,0],[0,0,0],[0,0,0]]
3 và hàng cuối cùng [hàng=2] là
[[0,0,0],[0,0,0],[0,0,0]]
4. Lưu ý rằng việc đánh số trong lập trình bắt đầu bằng 0 ngay cả khi đó là hàng đầu tiên. Sau đó, đối với mỗi cột, bạn sẽ có
[[0,0,0],[0,0,0],[0,0,0]]
5,
[[0,0,0],[0,0,0],[0,0,0]]
6 và
[[0,0,0],[0,0,0],[0,0,0]]
7

Ma trận sử dụng danh sách python

Tạo ma trận vuông ban đầu sẽ dễ hiểu hơn. Giả sử bạn muốn tạo ma trận NxN có chỉ số

[[0,0,0],[0,0,0],[0,0,0]]
8 [có 3 số hàng và 3 số cột]

matrix=[] #define empty matrix
row=[] #Mistake position 
for i in xrange[3]: #total row is 3
    row=[] #Credits for Hassan Tariq for noticing it missing
    for j in xrange[3]: #total column is 3
        row.append[0] #adding 0 value for each column for this row
    matrix.append[row] #add fully defined column into the row
print matrix

Bạn có thể xem chi tiết trong từng dòng. Mã này sẽ dẫn đến

[[0,0,0],[0,0,0],[0,0,0]]

Với tất cả dữ liệu bằng không. Bạn có thể sửa đổi nó theo ý muốn, chẳng hạn như thay đổi 0 thành i thì nó trở thành

[[1,1,1],[2,2,2],[3,3,3]]

hoặc thay đổi 0 thành j để nó được

[[1,2,3],[1,2,3],[1,2,3]]

Tuy nhiên, nếu bạn muốn kết quả được ghi trong một tệp, việc chuyển đổi từng hàng và cột sẽ khó khăn

Sau đó, làm thế nào để làm cho nó ma trận MxN?

for i in xrange[3]: 
    for j in xrange[2]: 

và điều này sẽ cung cấp cho bạn

[[0,0],[0,0],[0,0]]

Ma trận sử dụng Numpy

Numpy đã có sẵn mảng. Đó không phải là cách tiếp cận quá khác để viết ma trận, nhưng có vẻ thuận tiện. Nếu bạn muốn tạo ma trận bằng 0 với tổng số hàng và cột i, chỉ cần viết

import numpy
i = 3
a = numpy.zeros[shape=[i,i]]

Và nếu bạn muốn thay đổi dữ liệu tương ứng chẳng hạn

for i in xrange[3]:
    a[0][i] = i+1
    a[i][0] = i+1

nó sẽ cho bạn

[[1    2    3]
 [2    0    0]
 [3    0    0]]

Kết quả hiển thị dưới dạng mảng nên bạn dễ dàng quan sát ma trận. Tuy nhiên, trong trường hợp dữ liệu của bạn quá lớn [tôi. e. 100]

Viết chương trình Python để in một ma trận số N x M đã cho theo từng dòng tiến > lùi > tiến >. gọi món

Ma trận đầu vào
[[1, 2, 3, 4],
[5, 6, 7, 8],
[0, 6, 2, 8],
[2, 3, 0, 2]]
đầu ra
1
2
3
4
8
7
6
5
0
6
2
8
2
0
3
2

Giải pháp mẫu

Mã Python

def print_matrix[nums]:
    flag = True 
    
    for line in nums:

        if flag == True: 
            i = 0
            while i < len[line]:
                print[line[i]]
                i += 1
            flag = False

        else: 
            i = -1
            while i > -1 * len[line] - 1:
                print[line[i]]
                i = i - 1
            flag = True
print_matrix[[[1, 2, 3, 4],
              [5, 6, 7, 8],
              [0, 6, 2, 8],
              [2, 3, 0, 2]]]

Đầu ra mẫu

1
2
3
4
8
7
6
5
0
6
2
8
2
0
3
2

Sơ đồ


Trình chỉnh sửa mã Python

Có một cách khác để giải quyết giải pháp này?

Trước. Viết chương trình Python để tìm lợi nhuận tối đa trong một giao dịch
Kế tiếp. Viết chương trình Python để tính tích lớn nhất của ba số nguyên từ một danh sách các số nguyên đã cho

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



Theo dõi chúng tôi trên FacebookTwitter để cập nhật thông tin mới nhất.

con trăn. Lời khuyên trong ngày

Tuyên bố chuyển nhượng được chú thích

Điều này có vẻ không ấn tượng bằng một số thủ thuật khác nhưng đó là một cú pháp mới được đưa vào Python trong những năm gần đây và bạn nên biết

Các bài tập được chú thích cho phép người viết mã để lại các gợi ý về loại trong mã. Những điều này không có bất kỳ quyền lực thực thi nào ít nhất là chưa. Thật tuyệt khi có thể ngụ ý một số gợi ý về loại và chắc chắn cung cấp nhiều tùy chọn hơn là chỉ có thể nhận xét về các loại biến dự kiến

Làm cách nào để nhân ma trận trong Python?

3 cách nhân ma trận trong Python .
Viết một hàm Python tùy chỉnh để nhân ma trận
Sử dụng khả năng hiểu danh sách lồng nhau của Python để nhân ma trận
Sử dụng NumPy matmul[] để nhân ma trận trong Python

Làm cách nào để in mẫu bàn cờ của nxn bằng NumPy?

In mẫu bàn cờ của nxn bằng NumPy. .
x[1. 2,. 2] = 1. Nó hiển thị cắt từ hàng chỉ mục đầu tiên cho đến 1+2+2…và sau đó lấp đầy tất cả các cột bằng 1 từ 0 đến 0+2+2…, v.v.
x[. 2, 1. 2] = 1. Nó sẽ cắt từ hàng thứ 0 cho đến 0+2+2… và sau đó lấp đầy tất cả các cột bằng 1 bắt đầu bằng 1 cho đến 1+2+2…

Chủ Đề