Cách vẽ ma trận trong Python

Ma trận được sử dụng như một công cụ toán học cho nhiều mục đích khác nhau trong thế giới thực. Trong bài viết này, chúng ta sẽ thảo luận mọi thứ về Ma trận trong Python bằng thư viện NumPy nổi tiếng theo thứ tự sau

THƯỞNG. Kết hợp tất cả lại với nhau – Mã Python để giải một hệ phương trình tuyến tính

Hãy bắt đầu với Ma trận trong Python

NumPy là gì và khi nào sử dụng nó?

NumPy là một thư viện Python cho phép tính toán số dễ dàng liên quan đến các mảng và ma trận đơn và đa chiều. Đúng như tên gọi, NumPy vượt trội trong việc thực hiện các phép tính số. Nhiều thư viện khoa học dữ liệu như Pandas, Scikit-learn, SciPy, matplotlib, v.v. phụ thuộc vào NumPy. Nó tạo thành một phần không thể thiếu trong các ứng dụng khoa học dữ liệu ngày nay được viết bằng Python

Nhiều phép tính đại số tuyến tính trở nên dễ giải quyết bằng NumPy. Đại số tuyến tính là công cụ toán học cốt lõi được sử dụng trong nhiều thuật toán Machine Learning. Do đó, biết chi tiết về NumPy sẽ giúp bạn tạo thư viện hoặc mở rộng thư viện Machine Learning hiện có

NumPy cung cấp

  • một đối tượng mảng N chiều mạnh mẽ được gọi là ndarray
  • chức năng phát sóng
  • Công cụ tích hợp mã C/C++ và Fortran
  • Các khả năng đại số tuyến tính, biến đổi Fourier và số ngẫu nhiên hữu ích

Bây giờ, hãy tiếp tục với ma trận của chúng ta trong Python và xem cách tạo ma trận

Tạo ma trận trong NumPy

Tạo ma trận bằng danh sách

## Import numpy
import numpy as np

## Create a 2D numpy array using python lists
arr = np.array[[[ 1, 2, 3],[ 4, 5, 6]]]
print[arr]

np. mảng được sử dụng để tạo mảng NumPy từ danh sách. Mảng NumPy thuộc loại ndarray

Đầu ra của chương trình trên là

Nó đại diện cho một ma trận 2D nơi đầu vào cho np. mảng [] là một danh sách các danh sách [[ 1, 2, 3],[ 4, 5, 6]]. Mỗi danh sách trong danh sách cha tạo thành một hàng trong ma trận

Tạo ma trận sử dụng phạm vi

np. arange[] có thể tạo ra một dãy số bắt đầu và kết thúc

## Generate numbers from [start] to [end-1]
## Here start = 0
## end = 5
## Generated a NumPy array from 0 to 4
print[np.arange[0,5]]

Câu lệnh trên xuất ra mảng 1D sau

Để tạo ma trận 2D, chúng ta có thể sử dụng np. arange[] trong danh sách. Chúng tôi chuyển danh sách này vào np. array[] biến nó thành mảng 2D NumPy

print[np.array[[np.arange[0,5], np.arange[5,10]]]]

Câu lệnh trên xuất ra mảng 2D sau

Hình dạng của mảng NumPy

Chúng tôi đề cập đến bất kỳ đối tượng NumPy nào dưới dạng một mảng có kích thước N. Trong toán học, nó được gọi là ma trận của chiều N. Mọi đối tượng ndarray NumPy đều có thể được truy vấn về hình dạng của nó. Hình dạng là một bộ có định dạng [n_rows, n_cols]

Đoạn mã sau in hình dạng của ma trận

## Using example from above section to generate a matrix using ranges
arr_2d = np.array[[np.arange[0,5], np.arange[5,10]]]
print[arr_2d.shape]

đầu ra

[2, 5] có nghĩa là ma trận có 2 hàng và 5 cột

Ma trận chứa đầy số không và số một

điền vào số không

## Create a matrix of shape [3, 4] filled wit zeros
## By default float64 type of numbers are generated if not specified
print[np.zeros[[3, 4]]]

đầu ra

Có một sự thay đổi trong khi tạo ma trận với các ma trận, chúng tôi đã chuyển một tham số bổ sung dtype=np. int16. Điều này buộc np. one để tạo số nguyên thay vì float mặc định. Tham số bổ sung này cũng có thể được chuyển vào np. số không

Hoạt động ma trận và ví dụ

Phép cộng

Ví dụ dưới đây giải thích hai loại cộng

  • cộng vô hướng
  • Bổ sung ma trận
import numpy as np
## Generate two matrices
mat_2d_1 = np.array[[np.arange[0,3], np.arange[3,6]]]
mat_2d_2 = np.array[[np.arange[6,9], np.arange[9,12]]]
print["Ma trận 1. n ", mat_2d_1] print["Ma trận 2. n ", mat_2d_2] ## Thêm 1 vào mỗi phần tử trong mat_2d_1 và in ra print["Cộng vô hướng. n ", mat_2d_1 + 1] ## Thêm hai ma trận ở trên theo từng phần tử print["Cộng theo phần tử của hai ma trận có cùng kích thước. n", mat_2d_1 + mat_2d_2]

đầu ra

phép trừ

Phép trừ cũng giống như phép cộng. Ta chỉ cần chuyển phép toán từ phép cộng sang phép trừ

import numpy as np

## Generate two matrices
mat_2d_1 = np.array[[np.arange[0,3], np.arange[3,6]]]
mat_2d_2 = np.array[[np.arange[6,9], np.arange[9,12]]]

print["Matrix1: n ", mat_2d_1]
print["Matrix2: n ", mat_2d_2]

## Subtract 1 from each element in mat_2d_1 and print it
print["Scalar addition: n ", mat_2d_1 - 1]

## Subtract two matrices above elementwise
print["Element wise subtraction of two matrices of same size: n ", mat_2d_1 - mat_2d_2]

đầu ra

Sản phẩm

Hai loại hoạt động nhân hoặc sản phẩm có thể được thực hiện trên ma trận NumPy

  • tích vô hướng. Một giá trị vô hướng được nhân với tất cả các phần tử của ma trận
  • chấm sản phẩm. Đây là tích của hai ma trận theo quy tắc nhân ma trận. Tham khảo Phép nhân ma trận để biết quy tắc nhân ma trận
import numpy as np

## Generate two matrices of shape [2,3] and [3,2] so that we can find
## dot product
mat_2d_1 = np.array[[np.arange[0,3], np.arange[3,6]]]
mat_2d_2 = np.array[[np.arange[0,2], np.arange[2,4], np.arange[4,6]]]

## Print shapes and matrices
print["Matrix1: n ", mat_2d_1]
print["Matrix1 shape: n", mat_2d_1.shape]
print["Matrix2: n ", mat_2d_2]
print["Matrix2 shape: n", mat_2d_2.shape]

## Multiply each element by 2 in mat_2d_1 and print it
print["Scalar Product: n ", mat_2d_1 * 2]

## Find product of two matrices above using dot product
print["Dot Product: n ", np.dot[mat_2d_1, mat_2d_2]]

QUAN TRỌNG. Lưu ý cẩn thận rằng toán tử * chỉ được sử dụng cho phép nhân vô hướng. Tuy nhiên, đối với phép nhân ma trận, chúng ta sử dụng hàm np. dot[] lấy hai mảng NumPy 2D làm đối số

đầu ra

Phân công

Phép chia vô hướng phần tử có thể được thực hiện bằng cách sử dụng toán tử chia /

________số 8

đầu ra

số mũ

Có thể tìm ra số mũ thông minh của phần tử bằng cách sử dụng toán tử **

## Generate numbers from [start] to [end-1]
## Here start = 0
## end = 5
## Generated a NumPy array from 0 to 4
print[np.arange[0,5]]
0

đầu ra

chuyển vị

  • Chuyển vị của ma trận là một ma trận mới có các hàng là các cột của ma trận ban đầu
  • Ma trận [2, 3] trở thành ma trận [3, 2] có dạng
  • Numpy có một thuộc tính trên mọi đối tượng ndarray lưu trữ chuyển vị của ma trận. Chúng ta không cần sử dụng bất kỳ toán tử đặc biệt nào để tìm chuyển vị của ma trận
  • ma trận. T cung cấp chuyển vị của ma trận trong NumPy
  • Đoạn mã dưới đây thể hiện hoạt động chuyển vị
## Generate numbers from [start] to [end-1]
## Here start = 0
## end = 5
## Generated a NumPy array from 0 to 4
print[np.arange[0,5]]
1

đầu ra

    • Lựa chọn phạm vi hàng 1. có nghĩa là chọn chỉ mục hàng 1 cho đến hàng cuối cùng
    • Chỉ số phạm vi cột. có nghĩa là chọn tất cả các cột trong phạm vi hàng đã chọn

Cắt để chọn một cột

## Generate numbers from [start] to [end-1]
## Here start = 0
## end = 5
## Generated a NumPy array from 0 to 4
print[np.arange[0,5]]
3

đầu ra

    • Lựa chọn phạm vi hàng. có nghĩa là chọn tất cả các hàng
    • Chỉ số phạm vi cột 2. có nghĩa là chọn tất cả các cột bắt đầu từ chỉ số 2 cho đến hết

Cắt lát để chọn một ma trận con

## Generate numbers from [start] to [end-1]
## Here start = 0
## end = 5
## Generated a NumPy array from 0 to 4
print[np.arange[0,5]]
4

đầu ra

    • Lựa chọn phạm vi hàng 1. 3 chọn các hàng có chỉ số từ 1 đến 2
    • Lựa chọn phạm vi cột 1. 3 chọn các cột có chỉ số từ 1 đến 2

THƯỞNG. Giải hệ phương trình tuyến tính

Hệ phương trình

  • Ký hiệu ma trận để giải một hệ phương trình là
    • X = n p. dấu chấm[ [Nghịch đảo của A], B]
    • Ở đâu
      • X = vectơ ẩn số
      • A = Hệ số trên LHS
      • B = Giá trị trên RHS
  • Ví dụ: xem xét hệ phương trình tuyến tính dưới đây
  • x  + y  + z = 1
    2x + 4y + z = -2
    x  – y  + z = 0
  • có thể được biểu diễn trong ma trận như
  • X = [ x y z] vectơ của các ẩn số
    A = [ [1  1 1]
          [2 4 1]
          [1 -1 1] ]

    B = [ 1 -2 0 ]

  • Sử dụng công thức ma trận nêu trên, ta giải được hệ phương trình như sau
## Generate numbers from [start] to [end-1]
## Here start = 0
## end = 5
## Generated a NumPy array from 0 to 4
print[np.arange[0,5]]
5

đầu ra

Trong đó, x = -4. 5, y = 0. 5 và z = 5. 0

Với điều này, chúng tôi đã đi đến cuối bài viết của chúng tôi. Tôi hy vọng bạn đã hiểu ma trận trong Python là gì

Để có kiến ​​thức chuyên sâu về Python cùng với các ứng dụng khác nhau của nó, bạn có thể đăng ký khóa học cấp chứng chỉ Python trực tuyến trực tuyến với sự hỗ trợ 24/7 và quyền truy cập trọn đời.  

Có một câu hỏi cho chúng tôi?

Chủ Đề