Viết chương trình Python để đọc ma trận từ bàn điều khiển và in tổng cho mỗi cột. Là đầu vào từ người dùng, chấp nhận các hàng, cột và phần tử ma trận được phân tách bằng khoảng trắng [mỗi hàng]
Giải pháp mẫu
Mã Python
rows = int[input["Input rows: "]]
columns = int[input["Input columns: "]]
matrix = [[0]*columns for row in range[rows]]
print['Input number of elements in a row [1, 2, 3]: ']
for row in range[rows]:
lines = list[map[int, input[].split[]]]
for column in range[columns]:
matrix[row][column] = lines[column]
sum = [0]*columns
print["sum for each column:"]
for column in range[columns]:
for row in range[rows]:
sum[column] += matrix[row][column]
print[[sum[column]], ' ', end = '']
Đầu ra mẫu
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 6
Trình bày bằng hình ảnh
Sơ đồ
Trực quan hóa việc thực thi mã Python
Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách lấy đầu vào ma trận trong Python từ người dùng. Chúng tôi có thể lấy đầu vào từ người dùng theo hai cách khác nhau. Hãy xem hai trong số họ
Phương pháp 1
Lấy tất cả các số của ma trận từng cái một từ người dùng. Xem mã dưới đây
Ví dụ
# initializing an empty matrix matrix = [] # taking 2x2 matrix from the user for i in range[2]: # empty row row = [] for j in range[2]: # asking the user to input the number # converts the input to int as the default one is string element = int[input[]] # appending the element to the 'row' row.append[element] # appending the 'row' to the 'matrix' matrix.append[row] # printing the matrix print[matrix]
đầu ra
Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau
1 2 3 4 [[1, 2], [3, 4]]
ma trận 2
Lấy một hàng tại một thời điểm với các giá trị được phân tách bằng dấu cách. Và chuyển đổi từng cái sang sử dụng hàm map và int. xem mã
Ma trận là trường hợp đặc biệt của mảng hai chiều trong đó mỗi phần tử dữ liệu có cùng kích thước. Vì vậy, mọi ma trận cũng là một mảng hai chiều nhưng không phải ngược lại
Ma trận là cấu trúc dữ liệu rất quan trọng cho nhiều tính toán toán học và khoa học. Như chúng ta đã thảo luận về cấu trúc dữ liệu mảng hai chiều trong chương trước, chúng ta sẽ tập trung vào các phép toán cấu trúc dữ liệu dành riêng cho ma trận trong chương này
Chúng tôi cũng đang sử dụng gói numpy để thao tác dữ liệu ma trận
Ví dụ về ma trận
Xét trường hợp ghi nhiệt độ trong 1 tuần đo vào buổi sáng, trưa, tối và nửa đêm. Nó có thể được trình bày dưới dạng ma trận 7X5 bằng cách sử dụng một mảng và phương thức định hình lại có sẵn trong numpy
from numpy import * a = array[[['Mon',18,20,22,17],['Tue',11,18,21,18], ['Wed',15,21,20,19],['Thu',11,20,22,21], ['Fri',18,17,23,22],['Sat',12,22,20,18], ['Sun',13,15,19,16]]] m = reshape[a,[7,5]] print[m]
đầu ra
Dữ liệu trên có thể được biểu diễn dưới dạng mảng hai chiều như bên dưới -
[ ['Mon' '18' '20' '22' '17'] ['Tue' '11' '18' '21' '18'] ['Wed' '15' '21' '20' '19'] ['Thu' '11' '20' '22' '21'] ['Fri' '18' '17' '23' '22'] ['Sat' '12' '22' '20' '18'] ['Sun' '13' '15' '19' '16'] ]
Truy cập giá trị
Các phần tử dữ liệu trong một ma trận có thể được truy cập bằng cách sử dụng các chỉ mục. Cách truy cập giống như cách truy cập dữ liệu trong mảng hai chiều
Ví dụ
from numpy import * m = array[[['Mon',18,20,22,17],['Tue',11,18,21,18], ['Wed',15,21,20,19],['Thu',11,20,22,21], ['Fri',18,17,23,22],['Sat',12,22,20,18], ['Sun',13,15,19,16]]] # Print data for Wednesday print[m[2]] # Print data for friday evening print[m[4][3]]
đầu ra
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
['Wed', 15, 21, 20, 19] 23
Thêm một hàng
Sử dụng mã được đề cập bên dưới để thêm một hàng trong ma trận
Ví dụ
________số 8_______đầu ra
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
[ ['Mon' '18' '20' '22' '17'] ['Tue' '11' '18' '21' '18'] ['Wed' '15' '21' '20' '19'] ['Thu' '11' '20' '22' '21'] ['Fri' '18' '17' '23' '22'] ['Sat' '12' '22' '20' '18'] ['Sun' '13' '15' '19' '16'] ['Avg' '12' '15' '13' '11'] ]
Thêm một cột
Chúng ta có thể thêm cột vào ma trận bằng phương thức insert[]. ở đây chúng ta phải đề cập đến chỉ mục nơi chúng ta muốn thêm cột và một mảng chứa các giá trị mới của các cột được thêm vào. Trong ví dụ dưới đây, chúng tôi thêm t một cột mới ở vị trí thứ năm từ đầu
Ví dụ
from numpy import * m = array[[['Mon',18,20,22,17],['Tue',11,18,21,18], ['Wed',15,21,20,19],['Thu',11,20,22,21], ['Fri',18,17,23,22],['Sat',12,22,20,18], ['Sun',13,15,19,16]]] m_c = insert[m,[5],[[1],[2],[3],[4],[5],[6],[7]],1] print[m_c]
đầu ra
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
[ ['Mon' '18' '20' '22' '17' '1'] ['Tue' '11' '18' '21' '18' '2'] ['Wed' '15' '21' '20' '19' '3'] ['Thu' '11' '20' '22' '21' '4'] ['Fri' '18' '17' '23' '22' '5'] ['Sat' '12' '22' '20' '18' '6'] ['Sun' '13' '15' '19' '16' '7'] ]
Xóa một hàng
Chúng ta có thể xóa một hàng khỏi ma trận bằng phương thức delete[]. Chúng ta phải chỉ định chỉ mục của hàng và cả giá trị trục là 0 cho hàng và 1 cho cột
Ví dụ
from numpy import * m = array[[['Mon',18,20,22,17],['Tue',11,18,21,18], ['Wed',15,21,20,19],['Thu',11,20,22,21], ['Fri',18,17,23,22],['Sat',12,22,20,18], ['Sun',13,15,19,16]]] m = delete[m,[2],0] print[m]
đầu ra
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
[ ['Mon' '18' '20' '22' '17'] ['Tue' '11' '18' '21' '18'] ['Thu' '11' '20' '22' '21'] ['Fri' '18' '17' '23' '22'] ['Sat' '12' '22' '20' '18'] ['Sun' '13' '15' '19' '16'] ]
Xóa một cột
Chúng ta có thể xóa một cột khỏi ma trận bằng phương thức delete[]. Chúng ta phải chỉ định chỉ mục của cột và cả giá trị trục là 0 cho một hàng và 1 cho một cột
Ví dụ
[ ['Mon' '18' '20' '22' '17'] ['Tue' '11' '18' '21' '18'] ['Wed' '15' '21' '20' '19'] ['Thu' '11' '20' '22' '21'] ['Fri' '18' '17' '23' '22'] ['Sat' '12' '22' '20' '18'] ['Sun' '13' '15' '19' '16'] ]0
đầu ra
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
[ ['Mon' '18' '20' '22' '17'] ['Tue' '11' '18' '21' '18'] ['Wed' '15' '21' '20' '19'] ['Thu' '11' '20' '22' '21'] ['Fri' '18' '17' '23' '22'] ['Sat' '12' '22' '20' '18'] ['Sun' '13' '15' '19' '16'] ]1
Cập nhật một hàng
Để cập nhật các giá trị trong hàng của ma trận, chúng ta chỉ cần gán lại các giá trị tại chỉ mục của hàng. Trong ví dụ dưới đây, tất cả các giá trị cho dữ liệu của ngày thứ ba được đánh dấu bằng không. Chỉ số cho hàng này là 3