Cách in ma trận bằng Python bằng NumPy

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 in ma trận bằng Python bằng NumPy

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

Cách in ma trận bằng Python bằng NumPy
Cách in ma trận bằng Python bằng NumPy

Ở 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

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

#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à 
[[-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ụ

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

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

Chuyển đổi một ma trận liên quan đến việc chuyển đổi các hàng 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ử ở 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 lá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.  

Làm cách nào để đọc ma trận trong Python bằng cách sử dụng numpy?

Phương thức - 2 .
# Một mã ví dụ để lấy đầu vào ma trận của người dùng
nhập numpy dưới dạng np
Rows = int(input("Cho số hàng. "))
Columns = int(input("Cho số cột. "))
print("Hãy viết các phần tử của ma trận trên một dòng và cách nhau bởi dấu cách. ")
# Người dùng sẽ cung cấp các mục trong một dòng

Làm thế nào để in dữ liệu numpy?

Bước 1 - Nhập thư viện. nhập numpy dưới dạng np nhập sys
Bước 2 - Lấy mảng mẫu. Sample_array_1 = np. arange(1001) print(Sample_array_1) [ 0 1 2. 998 999 1000].
Bước 3 - In kết quả cuối cùng Sample_array_2 = np. sắp xếp (100) np. set_printoptions(ngưỡng=sys

Làm cách nào để tạo một mảng 2d trong numpy?

Nếu chỉ dùng hàm arange thì sẽ ra mảng một chiều. Để biến nó thành một mảng hai chiều, hãy xâu chuỗi đầu ra của nó bằng hàm định hình lại . Đầu tiên, 20 số nguyên sẽ được tạo và sau đó nó sẽ chuyển đổi mảng thành mảng hai chiều có 4 hàng và 5 cột.