Cách tạo ma trận trong python bằng danh sách

Hướng dẫn này sẽ trình bày các phương thức khác nhau có sẵn để chuyển đổi danh sách thành ma trận trong Python

Cả danh sách và ma trận đều là các kiểu dữ liệu khác nhau do Python cung cấp để lưu trữ một số mặt hàng dưới một biến duy nhất. Truy cập các mục này trở nên tương đối dễ dàng trong cả hai trường hợp

Thật không may, chúng tôi không thể thực hiện một số chức năng toán học trên danh sách. Do đó, trong hầu hết các trường hợp, danh sách được chuyển đổi thành ma trận hoặc mảng để thực hiện thành công các hàm toán học cụ thể

Python không trực tiếp chứa kiểu dữ liệu mảng mà chứa các ma trận là các lớp con của mảng, cung cấp cho chúng tất cả các tính năng của một mảng ngoài các tính năng của chính chúng. Có một số cách để chuyển đổi danh sách thành ma trận trong Python, tất cả đều được đề cập bên dưới

Sử dụng Cắt vòng lặp và Danh sách để Chuyển đổi Danh sách thành Mảng hoặc Ma trận trong Python

Một ma trận đơn giản có thể được tạo bằng cách sử dụng khái niệm danh sách lồng nhau. Trong phương pháp này, nhiệm vụ là chuyển đổi danh sách chứa các mục đã cho thành danh sách

Điều này có thể được thực hiện bằng cách sử dụng đơn giản vòng lặp, hàm

[[2, 10], [20, 200], [4000]]
3 và khái niệm cắt danh sách. Ở đây, chúng tôi sẽ sử dụng vòng lặp
[[2, 10], [20, 200], [4000]]
4 để thực hiện nhiệm vụ trong tầm tay

Đoạn mã sau sử dụng vòng lặp và cắt danh sách để chuyển đổi danh sách thành ma trận trong Python

x = [2,10,20,200,4000]
mat = []
while x != []:
  mat.append(x[:2])
  x = x[2:]
print(mat)

đầu ra

[[2, 10], [20, 200], [4000]]

Trong đoạn mã trên, chúng tôi chọn triển khai danh sách cắt giá trị

[[2, 10], [20, 200], [4000]]
5. Điều này có thể thay đổi tùy theo nhu cầu của người dùng và có thể thay đổi vị trí của các phần tử trong ma trận

Sử dụng hàm [[2, 10], [20, 200], [4000]] 0 từ thư viện Numpy để chuyển đổi danh sách thành mảng hoặc ma trận trong Python

NumPy là một thư viện thiết yếu cho phép người dùng tạo và thao tác với các mảng và ma trận trong Python

Phương thức

[[2, 10], [20, 200], [4000]]
1 có thể khai báo mảng trong Python. Một danh sách có thể được lấy trực tiếp làm đối số cho hàm này và kết quả sau khi sử dụng hàm này là một ma trận

Thư viện NumPy cần được nhập vào mã Python để chạy chương trình này mà không có bất kỳ lỗi nào

Đoạn mã sau sử dụng hàm

[[2, 10], [20, 200], [4000]]
5 từ thư viện NumPy để chuyển đổi danh sách thành mảng hoặc ma trận trong Python

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; .  

Cụ thể, đến cuối hướng dẫn này, bạn sẽ học

  • ma trận là gì
  • Cách biểu diễn ma trận trong Python
  • Cách truy cập một phần tử cụ thể trong ma trận
  • Cộng và trừ ma trận
  • Sử dụng Numpy để tạo và thao tác ma trận
  • Tính toán số với mảng Numpy
  • Chuyển đổi một ma trận với NumPy
  • Cắt một ma trận với NumPy

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

Cách tạo ma trận trong python bằng danh sách

Vì nó có 3 hàng và 2 cột nên nó là ma trận 3 nhân 2.  

Cách tạo ma trận trong python bằng danh sách
Cách tạo ma trận trong python bằng danh sách

Ở hàng 1, bạn có các giá trị 2, -1
Ở hàng 2, bạn có các giá trị 0, 5
Ở hàng 3, bạn có
In column 1, you have values 2, 0, 4
In column 2, you have values -1, 5, 9

Hãy xem cách thể hiện điều này trong Python.  

Biểu diễn một ma trận trong Python

Khô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 Python

Nế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

________số 8

#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

[[2, 10], [20, 200], [4000]]
0

#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 Python

Bạn có thể thêm danh sách dưới dạng ma trận trong Python. Xem ví dụ bên dưới

[[2, 10], [20, 200], [4000]]
2

đầ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

[[2, 10], [20, 200], [4000]]
4

đầu ra

 Phép trừ của list_1 và list_2 là 
[[-2, -2, 9], [8, -3, 6], [1, -3, -1]

Sử dụng thư viện NumPy để tạo và thao tác ma trận

Numpy 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 Numpy

Trong 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ụ

[[2, 10], [20, 200], [4000]]
5

đầ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 Numpy

Việ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

[[2, 10], [20, 200], [4000]]
6

đầ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

[[2, 10], [20, 200], [4000]]
8

#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 NumPy

Chuyể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ận

Giố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.  

  • Khi sắp xếp, chỉ số bắt đầu và kết thúc được biểu thị bằng cú pháp[bắt đầu. chấm dứt]
  • Khi chỉ mục bắt đầu không được chuyển, Python sẽ lấy chỉ mục bắt đầu từ đầu danh sách.  
  • Khi chỉ mục kết thúc không được chuyển, Python sẽ lấy chỉ mục kết thúc làm cuối danh sách.  
  • Khi đếm từ đầu, việc lập chỉ mục bắt đầu từ 0, 1, 2, 3… Khi đếm từ cuối, việc lập chỉ mục bắt đầu từ -1, -2, -3, v.v.  
  • Khi chỉ mục kết thúc được xác định, mảng được cắt lát trả về chỉ số trừ 1. Nếu nói chỉ số kết thúc là 3, quá trình cắt sẽ dừng ở chỉ số thứ 2

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ều

Khi 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

  • Trong câu lệnh in đầu tiên, chúng tôi đã cắt [2,. ]. Chỉ mục hàng được đặt thành 2, trong khi cột được đặt làm phạm vi của tất cả các phần tử. Đây là lý do tại sao các phần tử trong hàng thứ ba được in. Nhớ lại rằng chỉ số python từ 0. Vì chỉ số 2 sẽ là hàng thứ 3

[ 9 10 11 12]

  • Trong câu lệnh in tiếp theo, chúng tôi đã cắt [. , -3]. Chỉ mục hàng là một phạm vi của tất cả các số, trong khi chỉ mục cột được đặt thành -3. Nhớ lại rằng khi một chỉ số âm được thông qua, Python sẽ đếm từ cuối bắt đầu từ -2. Đây là lý do tại sao -3 trả về cột thứ 3 từ phía sau hoặc chỉ mục thứ 2 từ đầu.  
[ 2  6 10]
  • Trong câu lệnh in tiếp theo, chúng tôi đã cắt [. ,. 2]. Chỉ mục hàng được đặt để in tất cả các hàng trong ma trận. Cột thứ hai được đặt để trả về một phạm vi từ đầu đến chỉ mục thứ hai. Đây là lý do tại sao việc cắt trả về hai cột đầu tiên.  

#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.