Ma trận Python là gì?
Ma trận Python là một mảng dữ liệu hình chữ nhật hai chiều chuyên biệt được lưu trữ trong các hàng và cột. Dữ liệu trong ma trận có thể là số, chuỗi, biểu thức, ký hiệu,… Ma trận là một trong những cấu trúc dữ liệu quan trọng có thể được sử dụng trong các phép tính toán học và khoa học.
Trong hướng dẫn Python này, bạn sẽ học:
- Ma trận Python là gì?
- Ma trận Python hoạt động như thế nào?
- Tạo ma trận Python bằng kiểu dữ liệu danh sách lồng nhau
- Để đọc dữ liệu bên trong Ma trận Python bằng danh sách.
- Ví dụ 2: Để đọc phần tử cuối cùng của mỗi hàng.
- Ví dụ 3: Để in các hàng trong Ma trận
- Thêm ma trận bằng danh sách lồng nhau
- Nhân ma trận bằng cách sử dụng danh sách lồng nhau
- Tạo ma trận Python bằng cách sử dụng Mảng từ gói Python Numpy
- Hoạt động ma trận sử dụng Numpy.Array ()
- Truy cập ma trận NumPy
Ma trận Python hoạt động như thế nào?
Dữ liệu bên trong mảng hai chiều ở định dạng ma trận trông như sau:Bước 1)
Nó hiển thị một ma trận 2x2. Nó có hai hàng và 2 cột. Dữ liệu bên trong ma trận là các số. Hàng1 có giá trị 2,3 và hàng2 có giá trị 4,5. Các cột, tức là col1, có giá trị 2,4 và col2 có giá trị 3,5.
Bước 2)
Nó hiển thị một ma trận 2x3. Nó có hai hàng và ba cột. Dữ liệu bên trong hàng đầu tiên, tức là hàng1, có các giá trị 2,3,4 và hàng 2 có các giá trị 5,6,7. Các cột col1 có giá trị 2,5, col2 có giá trị 3,6 và cột col3 có giá trị 4,7.
Vì vậy, tương tự, bạn có thể lưu trữ dữ liệu của mình bên trong ma trận nxn bằng Python. Rất nhiều phép toán có thể được thực hiện trên một ma trận giống như cộng, trừ, nhân, v.v.
Python không có cách đơn giản để triển khai kiểu dữ liệu ma trận.
Ma trận python sử dụng các mảng và có thể thực hiện điều tương tự.
- Tạo Ma trận Python bằng kiểu dữ liệu danh sách lồng nhau
- Tạo ma trận Python bằng cách sử dụng Mảng từ gói Python Numpy
Tạo ma trận Python bằng kiểu dữ liệu danh sách lồng nhau
Trong Python, các mảng được biểu diễn bằng kiểu dữ liệu danh sách. Vì vậy, bây giờ sẽ sử dụng danh sách để tạo một ma trận python.
Chúng ta sẽ tạo một ma trận 3x3, như hình dưới đây:
- Ma trận có 3 hàng và 3 cột.
- Hàng đầu tiên trong định dạng danh sách sẽ như sau: [8,14, -6]
- Hàng thứ hai trong danh sách sẽ là: [12,7,4]
- Hàng thứ ba trong danh sách sẽ là: [-11,3,21]
Ma trận bên trong danh sách với tất cả các hàng và cột như hình dưới đây:
List = [[Row1],[Row2],[Row3]… [RowN]]
Vì vậy, theo ma trận được liệt kê ở trên, loại danh sách với dữ liệu ma trận như sau:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Để đọc dữ liệu bên trong Ma trận Python bằng danh sách.
Chúng tôi sẽ sử dụng ma trận được xác định ở trên. Ví dụ sẽ đọc dữ liệu, in ma trận, hiển thị phần tử cuối cùng từ mỗi hàng.
Ví dụ: Để in ma trận
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]#To print the matrixprint(M1)
Đầu ra:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Ví dụ 2: Để đọc phần tử cuối cùng của mỗi hàng.
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]matrix_length = len(M1)#To read the last element from each row.for i in range(matrix_length):print(M1[i][-1])
Đầu ra:
-6421
Ví dụ 3: Để in các hàng trong Ma trận
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]matrix_length = len(M1)#To print the rows in the Matrixfor i in range(matrix_length):print(M1[i])
Đầu ra:
[8, 14, -6][12, 7, 4][-11, 3, 21]
Thêm ma trận bằng danh sách lồng nhau
Chúng ta có thể dễ dàng thêm hai ma trận đã cho. Các ma trận ở đây sẽ ở dạng danh sách. Hãy để chúng tôi làm việc trên một ví dụ sẽ quan tâm đến việc thêm các ma trận đã cho.
Ma trận 1:
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]
Ma trận 2:
M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]
Last sẽ khởi tạo một ma trận sẽ lưu trữ kết quả của M1 + M2.
Ma trận 3:
M3 = [[0,0,0],[0,0,0],[0,0,0]]
Ví dụ: Thêm ma trận
Để thêm, các ma trận sẽ sử dụng vòng lặp for sẽ lặp qua cả hai ma trận đã cho.
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]M3 = [[0,0,0],[0,0,0],[0,0,0]]matrix_length = len(M1)#To Add M1 and M2 matricesfor i in range(len(M1)):for k in range(len(M2)):M3[i][k] = M1[i][k] + M2[i][k]#To Print the matrixprint("The sum of Matrix M1 and M2 = ", M3)
Đầu ra:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Nhân ma trận bằng cách sử dụng danh sách lồng nhau
Để nhân các ma trận, chúng ta có thể sử dụng vòng lặp for trên cả hai ma trận như được hiển thị trong đoạn mã dưới đây:
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]M3 = [[0,0,0],[0,0,0],[0,0,0]]matrix_length = len(M1)#To Multiply M1 and M2 matricesfor i in range(len(M1)):for k in range(len(M2)):M3[i][k] = M1[i][k] * M2[i][k]#To Print the matrixprint("The multiplication of Matrix M1 and M2 = ", M3)
Đầu ra:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
Tạo ma trận Python bằng cách sử dụng Mảng từ gói Python Numpy
Thư viện python Numpy giúp xử lý các mảng. Numpy xử lý một mảng nhanh hơn một chút so với danh sách.
Để làm việc với Numpy, trước tiên bạn cần cài đặt nó. Làm theo các bước dưới đây để cài đặt Numpy.
Bước 1)
Lệnh để cài đặt Numpy là:
pip install NumPy
Bước 2)
Để sử dụng Numpy trong mã của bạn, bạn phải nhập nó.
import NumPy
Bước 3)
Bạn cũng có thể nhập Numpy bằng bí danh, như hình dưới đây:
import NumPy as np
Chúng ta sẽ sử dụng phương thức array () từ Numpy để tạo một ma trận python.
Ví dụ: Mảng trong Numpy để tạo Ma trận Python
import numpy as npM1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])print(M1)
Đầu ra:
[[ 5 -10 15][ 3 -6 9][ -4 8 12]]
Hoạt động ma trận sử dụng Numpy.Array ()
Phép toán ma trận có thể được thực hiện là cộng, trừ, nhân, chuyển vị, đọc các hàng, cột của ma trận, cắt ma trận, v.v. Trong tất cả các ví dụ, chúng ta sẽ sử dụng phương thức array ().
Phép cộng ma trận
Để thực hiện phép cộng trên ma trận, chúng ta sẽ tạo hai ma trận bằng cách sử dụng numpy.array () và thêm chúng bằng toán tử (+).
Thí dụ:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])M3 = M1 + M2print(M3)
Đầu ra:
[[ 12 -12 36][ 16 12 48][ 6 -12 60]]
Phép trừ ma trận
Để thực hiện phép trừ trên ma trận, chúng ta sẽ tạo hai ma trận bằng cách sử dụng numpy.array () và trừ chúng bằng toán tử (-).
Thí dụ:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])M3 = M1 - M2print(M3)
Đầu ra:
[[ -6 24 -18][ -6 -32 -18][-20 40 -18]]
Phép nhân ma trận
Đầu tiên sẽ tạo hai ma trận bằng cách sử dụng numpy.arary (). Để nhân chúng lên, bạn có thể sử dụng phương thức numpy dot (). Numpy.dot () là tích số chấm của ma trận M1 và M2. Numpy.dot () xử lý mảng 2D và thực hiện phép nhân ma trận.
Thí dụ:
import numpy as npM1 = np.array([[3, 6], [5, -10]])M2 = np.array([[9, -18], [11, 22]])M3 = M1.dot(M2)print(M3)
Đầu ra:
[[ 93 78][ -65 -310]]
Ma trận Transpose
Chuyển vị của ma trận được tính toán bằng cách thay đổi các hàng thành cột và cột thành hàng. Hàm transpose () từ Numpy có thể được sử dụng để tính toán chuyển vị của ma trận.
Thí dụ:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])M2 = M1.transpose()print(M2)
Đầu ra:
[[ 3 5 4][ 6 -10 8][ 9 15 12]]
Cắt ma trận
Slicing sẽ trả về cho bạn các phần tử từ ma trận dựa trên chỉ số đầu / cuối đã cho.
- Cú pháp để cắt là - [start: end]
- Nếu chỉ số bắt đầu không được đưa ra, nó được coi là 0. Ví dụ [: 5], nó có nghĩa là [0: 5].
- Nếu phần cuối không được vượt qua, nó sẽ được coi là chiều dài của mảng.
- Nếu phần đầu / phần cuối có giá trị âm, thì quá trình cắt sẽ được thực hiện từ phần cuối của mảng.
Trước khi chúng ta làm việc với việc cắt lát trên một ma trận, trước tiên chúng ta hãy hiểu cách áp dụng lát cắt trên một mảng đơn giản.
import numpy as nparr = np.array([2,4,6,8,10,12,14,16])print(arr[3:6]) # will print the elements from 3 to 5print(arr[:5]) # will print the elements from 0 to 4print(arr[2:]) # will print the elements from 2 to length of the array.print(arr[-5:-1]) # will print from the end i.e. -5 to -2print(arr[:-1]) # will print from end i.e. 0 to -2
Đầu ra:
[ 8 10 12][ 2 4 6 8 10][ 6 8 10 12 14 16][ 8 10 12 14][ 2 4 6 8 10 12 14]
Bây giờ chúng ta hãy thực hiện cắt trên ma trận. Để thực hiện cắt trên ma trận
cú pháp sẽ là M1 [row_start: row_end, col_start: col_end]
- Bắt đầu / kết thúc đầu tiên sẽ dành cho hàng, tức là để chọn các hàng của ma trận.
- Bắt đầu / kết thúc thứ hai sẽ dành cho cột, tức là để chọn các cột của ma trận.
Ma trận M1 mà chúng ta sẽ sử dụng như sau:
M1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])
Có tổng cộng 4 hàng. Chỉ số bắt đầu từ 0 đến 3. 0 thứ hàng là [2,4,6,8,10], 1 st hàng là [3,6,9, -12, -15] sau đó là 2 thứ 3 thứ .
Ma trận M1 có 5 cột. Chỉ số bắt đầu từ 0 đến 4. 0 thứ cột có giá trị [2,3,4,5], 1 st cột đã giá trị [4,6,8, -10] sau đó là 2 nd , 3 thứ 4 thứ , và thứ 5 .
Dưới đây là một ví dụ cho thấy cách lấy dữ liệu hàng và cột từ ma trận bằng cách sử dụng phương pháp cắt. Trong ví dụ, chúng tôi đang in hàng thứ 1 và thứ 2 , và đối với các cột, chúng tôi muốn có cột đầu tiên, thứ hai và thứ ba. Để có được đầu ra đó, chúng tôi đã sử dụng: M1 [1: 3, 1: 4]
Thí dụ:
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[1:3, 1:4]) # For 1:3, it will give first and second row.#The columns will be taken from first to third.
Đầu ra:
[[ 6 9 -12][ 8 12 16]]
Ví dụ: Để in tất cả các hàng và cột thứ ba
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:,3]) # This will print all rows and the third column data.
Đầu ra:
[ 8 -12 16 -20]
Ví dụ: Để in hàng đầu tiên và tất cả các cột
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:1,]) # This will print first row and all columns
Đầu ra:
[[ 2 4 6 8 10]]
Ví dụ: Để in ba hàng đầu tiên và 2 cột đầu tiên
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:3,:2])
Đầu ra:
[[2 4][3 6][4 8]]
Truy cập ma trận NumPy
Chúng tôi đã thấy cách cắt lát hoạt động. Xem xét điều đó, chúng tôi sẽ làm thế nào để lấy các hàng và cột từ ma trận.
Để in các hàng của ma trận
Trong ví dụ sẽ in các hàng của ma trận.
Thí dụ:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])print(M1[0]) #first rowprint(M1[1]) # the second rowprint(M1[-1]) # -1 will print the last row
Đầu ra:
[3 6 9][ 5 -10 15][ 4 8 12]
Để có hàng cuối cùng, bạn có thể sử dụng chỉ mục hoặc -1. Ví dụ: ma trận có 3 hàng,
vì vậy M1 [0] sẽ cung cấp cho bạn hàng đầu tiên,
M1 [1] sẽ cung cấp cho bạn hàng thứ hai
M1 [2] hoặc M1 [-1] sẽ cung cấp cho bạn hàng thứ ba hoặc hàng cuối cùng.
Để in các cột của ma trận
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:,0]) # Will print the first Columnprint(M1[:,3]) # Will print the third Columnprint(M1[:,-1]) # -1 will give you the last column
Đầu ra:
[2 3 4 5][ 8 -12 16 -20][ 10 -15 -20 25]
Tóm lược:
- Ma trận Python là một mảng dữ liệu hình chữ nhật hai chiều chuyên biệt được lưu trữ trong các hàng và cột. Dữ liệu trong ma trận có thể là số, chuỗi, biểu thức, ký hiệu,… Ma trận là một trong những cấu trúc dữ liệu quan trọng có thể được sử dụng trong các phép tính toán học và khoa học.
- Python không có cách đơn giản để triển khai kiểu dữ liệu ma trận. Ma trận Python có thể được tạo bằng kiểu dữ liệu danh sách lồng nhau và bằng cách sử dụng thư viện numpy.
- Thư viện python Numpy giúp xử lý các mảng. Numpy xử lý một mảng nhanh hơn một chút so với danh sách.
- Phép toán ma trận có thể được thực hiện là cộng, trừ, nhân, chuyển vị, đọc các hàng, cột của ma trận, cắt ma trận, v.v.
- Để thêm hai ma trận, bạn có thể sử dụng numpy.array () và thêm chúng bằng toán tử (+).
- Để nhân chúng lên, bạn có thể sử dụng phương thức numpy dot (). Numpy.dot () là tích số chấm của ma trận M1 và M2. Numpy.dot () xử lý mảng 2D và thực hiện phép nhân ma trận.
- Chuyển vị của ma trận được tính bằng cách thay đổi các hàng dưới dạng cột và cột thành hàng. Hàm transpose () từ Numpy có thể được sử dụng để tính toán chuyển vị của ma trận.
- Việc cắt một ma trận sẽ trả về cho bạn các phần tử dựa trên chỉ số đầu / cuối đã cho.