4
tập trung vào
1076
Người theo dõi

Python -- các phép toán ma trận numpy

Được tạo ra trong: 2017-01-12 12:47:58, cập nhật trên:
comments   0
hits   4036

Python – các phép toán ma trận numpy

Lưu ý: NumPy là kế thừa của Numarray, được sử dụng để thay thế NumArray. SAGE là một gói phần mềm toán học được tích hợp trên NumPy và một số công cụ khác, với mục tiêu thay thế các công cụ như Magma, Maple, Mathematica và Matlab. Hôm nay tôi muốn tìm một số bài giới thiệu về NumPy trên mạng và thử sử dụng số ma trận ngược của NumPy, nhưng không tìm thấy bất kỳ tài liệu nào bằng tiếng Trung Quốc, một người dùng mạng đã hỏi tôi làm thế nào để sử dụng Python để tìm kiếm ma trận ngược, và không có ai trả lời. Vì vậy, tôi đã tìm thấy tài liệu chính thức của NumPy, trong đó có một phần nhỏ là giới thiệu đối tượng ma trận, vì vậy tôi đã dịch phần này sang tiếng Trung Quốc, đóng góp một chút nhỏ, thời gian ngắn hơn, không thể kiểm tra lỗi chính tả, có vấn đề xin lỗi.

  • #### 1, đối tượng ma trận (Matrix)

Loại ma trận được kế thừa từ loại ndarray, do đó chứa tất cả các thuộc tính dữ liệu và phương thức của ndarray. Loại ma trận có sáu điểm khác biệt quan trọng với loại ndarray, khi bạn hoạt động như đối tượng ma trận khi các arrays hoạt động, những điểm khác biệt này có thể dẫn đến kết quả không mong muốn.

    1. Các đối tượng Matrix có thể được tạo bằng một chuỗi theo kiểu Matlab, tức là một chuỗi được phân chia bởi các hàng bằng khoảng trống, được phân chia bởi các dấu phân số.
    1. Các đối tượng ma trận luôn luôn là hai chiều. Điều này có ảnh hưởng sâu sắc, ví dụ như giá trị trả về của m.ravel () là hai chiều, giá trị trả về của các thành viên được chọn cũng là hai chiều, do đó hành vi của chuỗi và array sẽ có tính chất khác nhau.
    1. Nhân kiểu ma trận (matrix type multiplication) bao gồm nhân của mảng (array) và sử dụng phương thức nhân của ma trận (matrix multiplication). Khi bạn nhận được giá trị trả về của ma trận (matrix return), hãy chắc chắn rằng bạn đã hiểu các hàm này có nghĩa là gì. Đặc biệt, thực tế hàm array (array) sẽ trả về một ma trận (matrix) nếu m là ma trận (matrix).
    1. Hành động xếp loại ma trận cũng bao trùm các hoạt động xếp trước đó, sử dụng xếp của ma trận. Dựa trên thực tế này, hãy nhắc nhở rằng nếu sử dụng xếp của một ma trận làm tham số, hãy gọiasanarray ((…) giống như trên.
    1. Tiêu chuẩn array_priority mặc định của ma trận là 10.0, vì vậy các hoạt động hỗn hợp của ndarray và đối tượng ma trận luôn trả về ma trận.
    1. Ma trận có một số thuộc tính đặc biệt giúp tính toán dễ dàng hơn, đó là:
    • (a) .T – trở về vị trí của nó

    • (b) .H – trở về vị trí cộng hưởng của chính nó

    • © .I – trả về ma trận ngược của nó

    • (d) .A – Một dạng nhìn 2 chiều của một mảng dữ liệu trả về dữ liệu của nó (không có bất kỳ bản sao nào được thực hiện)

    Lớp Matrix là một phân lớp Python của ndarray, bạn cũng có thể học thực hiện này để xây dựng các phân lớp của bạn. Các đối tượng Matrix cũng có thể được xây dựng bằng các đối tượng Matrix khác, chuỗi ký tự, hoặc các tham số khác có thể được chuyển đổi thành một ndarray. Ngoài ra, trong NumPy, mat là một cái tên khác của matrix.

  • Ví dụ 1: Xây dựng ma trận bằng chuỗi

  import numpy as np
  a=np.mat('1 2 3; 4 5 3')
  print (a*a.T).I
  [[ 0.29239766 -0.13450292]
  [-0.13450292  0.08187135]]
  • Ví dụ 2: Xây dựng ma trận sử dụng chuỗi xếp chồng
  np.matrix([[  1.+0.j,   5.+0.j,  10.+0.j],
        [  1.+0.j,   3.+0.j,   0.+4.j]])
  • Ví dụ 3: Sử dụng một ma trận cấu trúc mảng
  np.mat( np.random.rand(3,3) ).T
  np.matrix([[ 0.81541602,  0.73987459,  0.03509142],
        [ 0.14767449,  0.60539483,  0.05641679],
        [ 0.43257759,  0.628695  ,  0.47413553]])

Matrix( data, dtype=None, copy=True ) Nếu dtype là None, thì kiểu dữ liệu sẽ được quyết định bởi nội dung của dữ liệu. Nếu copy là True, thì sẽ sao chép dữ liệu trong data, nếu không thì sẽ sử dụng buffer dữ liệu ban đầu. Nếu không tìm thấy vùng buffer dữ liệu, thì tất nhiên sẽ sao chép dữ liệu. Lưu ý: matrix matrix thực sự là một loại, vì vậy khi bạn xây dựng các trường hợp, bạn sẽ gọi matrix.new (matrix, data, dtype, copy). Mat Chỉ là một cái tên khác cho matrix. Asmatrix(data, dtype=None) Trả về dữ liệu chưa được sao chép. Tương đương với matrix ((data, dtype, copy=False) Bmat(obj, ldict=None, gdict=None) Xây dựng một ma trận bằng cách sử dụng một chuỗi, một chuỗi được nhúng hoặc một mảng. Lệnh này cho phép bạn xây dựng ma trận từ các đối tượng khác. Trong đó, các tham số ldict và gdict được sử dụng khi obj là một chuỗi. Hai tham số này là từ điển của local và module. Nếu không cung cấp chúng, chúng sẽ được cung cấp bởi hệ thống.

  A=np.mat('2 2; 2 2'); B=np.mat('1 1; 1 1');
  print(np.bmat('A B; B A'))
    [[2 2 1 1]
     [2 2 1 1]
     [1 1 2 2]
     [1 1 2 2]]

Tác giả: su frank