Lưu ý: NumPy là người kế nhiệm của Numarray và được sử dụng để thay thế NumArray. SAGE là một bộ phần mềm toán học tích hợp dựa trên NumPy và một số công cụ khác, nhằm thay thế các công cụ như Magma, Maple, Mathematica và Matlab. Hôm nay tôi muốn tìm kiếm một số thông tin về NumPy trên mạng và cố gắng tìm kiếm ma trận ngược với NumPy, nhưng không tìm thấy bất kỳ thông tin nào bằng tiếng Trung, một số người dùng trên diễn đàn đã yêu cầu bạn làm thế nào để thực hiện ma trận ngược với python, 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ỏ về các đối tượng ma trận, vì vậy tôi đã dịch phần này sang tiếng Trung, đóng góp một chút, thời gian ngắn hơn, không kiểm tra lỗi chính tả, có vấn đề, xin lỗi.
Loại ma trận kế thừa loại narray và do đó chứa tất cả các thuộc tính và phương pháp dữ liệu của narray. Loại ma trận có sáu điểm khác biệt quan trọng với loại narray, những điểm này sẽ dẫn đến kết quả không mong muốn khi bạn vận hành các đối tượng ma trận như các mảng.
1) Các đối tượng ma trận có thể được tạo bằng một chuỗi kiểu Matlab, tức là một chuỗi được tách ra bằng các hàng không và phân số.
2) Các đối tượng ma trận luôn là hai chiều. Điều này có những ả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 sẽ có bản chất khác với array.
3) Các phép nhân kiểu ma trận bao gồm các phép nhân của mảng, sử dụng các phép nhân của ma trận. Khi bạn nhận giá trị trả về của ma trận, hãy đảm bảo bạn đã hiểu ý nghĩa của các hàm này. Đặc biệt, thực tế là hàm asanarray ((m) sẽ trả về một ma trận nếu nó là một mma trận.
4) Các phép xơ của kiểu ma trận cũng bao gồm các phép xơ trước đây, sử dụng các phép xơ của ma trận. Dựa trên thực tế này, hãy nhắc lại rằng nếu sử dụng các phép xơ của một ma trận làm tham số, gọi asanarray[...] giống như trên.
5) Ưu tiên mặc định của ma trận là 10.0, do đó, các hoạt động kết hợp narray và các đối tượng ma trận luôn trả về ma trận.
6) 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, những thuộc tính này là:
(a).T -- Trở lại vị trí của chính nó
(b).H - Trở lại sự chuyển động cộng hưởng của chính nó
©.I - Trở lại ma trận ngược của chính mình
(d).A -- Một dạng xem của một mảng 2 chiều trả về dữ liệu của nó (không sao chép gì)
Một lớp matrix là một lớp con trong Python của narray, bạn cũng có thể học thực hiện này để xây dựng lớp con của riêng 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, từ, chuỗi, hoặc các đối tượng khác có thể được chuyển đổi thành một tham số của narray. Ngoài ra, trong NumPy, con số matrix là một biệt danh của con số 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 bằng chuỗi mảng
np.matrix([[ 1.+0.j, 5.+0.j, 10.+0.j],
[ 1.+0.j, 3.+0.j, 0.+4.j]])
Ví dụ 3: Xây dựng ma trận bằng một 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)) Chuyển đổi dữ liệu được truyền vào ma trận; nếu dtype là None, thì kiểu dữ liệu sẽ được xác đị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 dữ liệu, nếu không sẽ sử dụng bộ đệm dữ liệu gốc; nếu không tìm thấy khu vực đệm dữ liệu, tất nhiên sẽ sao chép dữ liệu. Lưu ý: Ma trận thực sự là một loại, vì vậy khi bạn xây dựng một trường hợp, bạn sẽ phải sử dụng một bộ đệm dữ liệu.候会调用matrix.new(matrix, data, dtype, copy) Matt. Chỉ là một cái tên khác của matrix. Asmatrix ((data, dtype=None) Trả về dữ liệu không được sao chép. Tương đương với ma trận (data, dtype, copy=False). Bmat ((obj, ldict=None, gdict=None) Tạo một ma trận bằng cách sử dụng một chuỗi, một chuỗi các mảng hoặc một mảng (array); 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 các khu vực và mô-đun. Nếu bạn không cung cấp chúng, chúng sẽ được hệ thống cung cấp.
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]]
Được chuyển thể bởi su frank