Ma trận và mảng trong python là gì?
Ma trận (dạng số nhiều của ma trận) là một mảng dữ liệu 2 chiều theo hàng và cột. Ma trận là một phần chính của đại số tuyến tính và chúng có thể được sắp xếp để làm những điều phi thường trong toán học. Trong hướng dẫn này, bạn sẽ học cách tạo ma trận từ danh sách trong Python. Ngoài ra, chúng tôi sẽ sử dụng thư viện NumPy để tạo mảng NumPy; . Show
Cụ thể, đến cuối hướng dẫn này, bạn sẽ học
Ma trận là gìMa trận chỉ đơn giản là một cách thu thập dữ liệu theo hàng và cột. Chúng tôi biết dữ liệu có thể được thu thập theo bộ, danh sách, v.v. Khi nói đến ma trận, chúng được chia thành các hàng và cột. Nếu bạn không chắc hàng và cột là gì, hàng là trục hoành. Mặt khác, cột là dữ liệu nhìn thấy trong trục tung Một ma trận trong toán học có thể được xác định bởi kích thước của nó; . Dưới đây là một ví dụ về ma trận Vì nó có 3 hàng và 2 cột nên nó là ma trận 3 nhân 2. Ở hàng 1, bạn có các giá trị 2, -1 Hãy xem cách thể hiện điều này trong Python. Biểu diễn một ma trận trong PythonKhông có cách biểu diễn trực tiếp kiểu dữ liệu ma trận trong Python. Kiểu dữ liệu gần nhất với ma trận là kiểu dữ liệu danh sách và do đó, thường được sử dụng để tạo ma trận Tuy nhiên, thư viện Numpy cung cấp một cách khác để biểu diễn ma trận trong Python, kiểu dữ liệu mảng NumPy. Chúng ta sẽ thảo luận về cả hai phương pháp trong hướng dẫn này. Tạo Ma trận bằng Danh sách Python.Một danh sách trong python là một tập hợp các dữ liệu đồng nhất, được đóng gói bởi các dấu ngoặc vuông và mỗi dấu cách nhau bởi dấu phẩy. Theo mặc định, danh sách được xem dưới dạng ma trận có một hàng trong khi cột phụ thuộc vào số lượng phần tử mà nó có. Hãy xem một ví dụ #create a one-dimensional list list_1 = [1, -2, 0] Danh sách được tạo là ma trận 1 x 3 vì nó chứa 3 phần tử và đó là một danh sách duy nhất. Sau đó, câu hỏi lớn là, làm cách nào để tạo danh sách có nhiều hơn 1 hàng? Nếu chúng ta muốn tạo một danh sách có nhiều hơn một hàng, chúng ta mở 2 dấu ngoặc vuông và đóng gói mỗi hàng bên trong một dấu ngoặc vuông. Xem cách nó được thực hiện bên dưới #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']] Bây giờ, hãy tạo ma trận 3 x 2 bằng cách sử dụng danh sách lồng nhau #create a 3 by 2 list list_1 = [[2, -1], [0, 5], [4, 9]] Truy cập phần tử trong danh sách PythonNếu bạn muốn truy cập các phần tử cụ thể trong danh sách, bạn có thể làm như vậy bằng cách lập chỉ mục. Để lấy toàn bộ hàng, bạn chuyển chỉ mục hàng trong ngoặc vuông. Giả sử chúng ta muốn truy cập hàng đầu tiên trong danh sách trên. Chúng tôi có thể viết #create a 3 by 2 list list_1 = [[2, -1], [0, 5], [4, 9]] #print the first row print(list_1[0]) #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]5 Để lấy một phần tử cụ thể, hãy chuyển chỉ mục hàng và cột trong các dấu ngoặc vuông riêng biệt, như trong [‘chỉ mục hàng’][‘chỉ mục cột’]. Trong ma trận trên, nếu chúng ta muốn truy cập phần tử ở hàng đầu tiên và cột thứ hai, chúng ta có thể thực hiện bằng đoạn mã sau #create a 3 by 2 list list_1 = [[2, -1], [0, 5], [4, 9]] #print the element in the first row and second column print(list_1[0][1]) #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]6 Thêm ma trận trong PythonBạn có thể thêm danh sách dưới dạng ma trận trong Python. Xem ví dụ bên dưới #define the two matrices to be added list_1 = [[1, 4, 3], [10,2,4], [-1,3,2]] list_2 = [[3, 6, -6], [2,5,-2], [-2,6,3]] #define a list to store the result addtion_result = [[0,0,0], [0,0,0], [0,0,0]] #add the two lists based on their index for i, _ in enumerate(list_1): for j, _ in enumerate(list_2): addtion_result[i][j] = list_1[i][j] + list_2[i][j] #To Print the matrix print(f" The addition of list_1 and list_2 is \n{addtion_result}") đầu ra #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]7 Phép trừ ma trận trong Python.Ngoài ra, bạn có thể thực hiện phép trừ dựa trên phần tử với danh sách lồng nhau. Xem một ví dụ dưới đây #define the two matrices to be added list_1 = [[1, 4, 3], [10,2,4], [-1,3,2]] list_2 = [[3, 6, -6], [2,5,-2], [-2,6,3]] #define a list to store the result addtion_result = [[0,0,0], [0,0,0], [0,0,0]] #multiply the two lists based on their index for i, _ in enumerate(list_1): for j, _ in enumerate(list_2): addtion_result[i][j] = list_1[i][j] - list_2[i][j] #To Print the matrix print(f" The subtraction of list_1 and list_2 is \n{addtion_result}") đầu ra Phép trừ của list_1 và list_2 là Sử dụng thư viện NumPy để tạo và thao tác ma trậnNumpy là một thư viện phổ biến được sử dụng để tính toán số trong python. Trên thực tế, cái tên NumPy là viết tắt của Numerical Python. Bạn có thể tạo ma trận bằng thư viện NumPy. Trong phần này, chúng ta sẽ tạo và thực hiện các tính toán trong ma trận bằng cách sử dụng Numpy. Nếu bạn chưa cài đặt thư viện trên máy của mình, bạn có thể làm như vậy bằng cách nhập cài đặt pip gọn gàng trên dấu nhắc lệnh của bạn. Điều quan trọng là phải nói rằng NumPy được cài đặt sẵn nếu bạn đang sử dụng sổ ghi chép Jupyter. Bạn sẽ không cần cài đặt lại NumPy Khi bạn đã cài đặt thành công numpy, bây giờ chúng ta hãy bắt đầu tạo ma trận với thư viện Tạo ma trận với NumpyTrong Numpy, ma trận ở dạng mảng NumPy. Danh sách được chuyển đổi thành mảng Numpy bằng cách gọi phương thức array() và chuyển danh sách. Hãy xem một ví dụ #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]0 đầu ra [1 2 3]Như đã thấy từ kết quả, ma trận của một đối tượng có kiểu dữ liệu ndarray (mảng n chiều) Bổ sung các ma trận trong NumpyViệc thêm ma trận vào NumPy dễ dàng hơn nhiều so với việc thêm danh sách trong ví dụ trước đó. Sau khi xác định các mảng sẽ được thêm vào, bạn chỉ cần sử dụng toán tử + để cho biết bạn muốn các ma trận được thêm vào. Xem ví dụ bên dưới #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]1 đầu ra #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]8 Dễ dàng phải không?
Điều tương tự cũng xảy ra với phép trừ ma trận Phép trừ ma trận với Numpy#create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]3 #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]9 Nhân hai ma trận trong NumpyĐể nhân hai ma trận trong Numpy, bạn có thể sử dụng phương thức dot() của NumPy. Xem một ví dụ #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]0 #create a 3 by 2 list list_1 = [[2, -1], [0, 5], [4, 9]]0 Chuyển đổi ma trận trong NumPyChuyển đổi một ma trận liên quan đến việc chuyển đổi các hàng để trở thành các cột và cũng chuyển đổi các cột thành các hàng. Để trả về chuyển vị của một ma trận, có thể gọi phương thức transpose() #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]1 #create a 3 by 2 list list_1 = [[2, -1], [0, 5], [4, 9]]1 Ngoài ra, bạn có thể sử dụng thuộc tính T. #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]2 #create a 3 by 2 list list_1 = [[2, -1], [0, 5], [4, 9]]1 Như đã thấy, nó tạo ra kết quả tương tự Làm thế nào để cắt ma trậnGiống như trong danh sách, cắt lát là quá trình trả về một phần của ma trận. Dưới đây là một số điều quan trọng cần lưu ý về việc cắt lát.
Bây giờ hãy áp dụng một số trong số này với các ví dụ cụ thể. Cắt ma trận một chiều#create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]3 #create a 3 by 2 list list_1 = [[2, -1], [0, 5], [4, 9]]3 Cắt một mảng nhiều chiềuKhi cắt một mảng nhiều chiều, hàng và cột được phân tách bằng dấu phẩy #create a list with more than one row list_1 = [['first row'], ['second row'], ['third row'], ... ['last row']]4 #create a 3 by 2 list list_1 = [[2, -1], [0, 5], [4, 9]]4 #create a 3 by 2 list list_1 = [[2, -1], [0, 5], [4, 9]]5
[ 9 10 11 12]
#create a 3 by 2 list list_1 = [[2, -1], [0, 5], [4, 9]]6 #create a 3 by 2 list list_1 = [[2, -1], [0, 5], [4, 9]]7 Hãy kết luận.Trong hướng dẫn này, bạn đã khám phá cách tạo ma trận bằng cách sử dụng danh sách và mảng NumPy trong Python. Bạn cũng đã học cách thực hiện các phép tính số trên ma trận trong Numpy. Điều đáng nói là phương thức dot() và transpose(). Cuối cùng, bạn đã học cách cắt một đoạn ma trận cụ thể bằng cách chỉ định chỉ số hoặc phạm vi của nó. Nếu bạn có bất kỳ câu hỏi nào, vui lòng để lại trong phần bình luận và tôi sẽ cố gắng hết sức để trả lời chúng. Sự khác biệt giữa ma trận và mảng trong Python là gì?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 . Ma trận là một cấu trúc dữ liệu quan trọng cho nhiều tính toán toán học và khoa học. Mọi ma trận cũng là mảng hai chiều nhưng không phải ngược lại.
Mảng và ma trận là gì?Mảng là một vectơ có một hoặc nhiều chiều. Mảng một chiều có thể coi là một vectơ, còn mảng hai chiều có thể coi là một ma trận . Đằng sau hậu trường, dữ liệu được lưu trữ dưới dạng ma trận n chiều.
Ma trận trong Python là gì?Ma trận trong Python là mảng hai chiều có số lượng hàng và cột cụ thể . Các phần tử dữ liệu trong ma trận Python có thể là số, chuỗi hoặc ký hiệu, v.v. Ma trận hoặc danh sách hai chiều là một cấu trúc dữ liệu quan trọng.
Sự khác biệt giữa ma trận và mảng trong NumPy là gì?Lớp NumPy ndarray được sử dụng để biểu diễn cả ma trận và vectơ. Vectơ là một mảng có một chiều (không có sự khác biệt giữa vectơ hàng và cột), trong khi ma trận đề cập đến một mảng có hai chiều . Đối với các mảng chiều 3-D hoặc cao hơn, thuật ngữ tensor cũng thường được sử dụng. |