Có thư viện ma trận cho Python không?

Một tình huống thường gặp trong học máy là có một lượng dữ liệu khổng lồ; . Ví dụ: hãy tưởng tượng một ma trận trong đó các cột là mọi bộ phim trên Netflix, các hàng là mọi người dùng Netflix và các giá trị là số lần người dùng đã xem bộ phim cụ thể đó. Ma trận này sẽ có hàng chục nghìn cột và hàng triệu hàng. Tuy nhiên, vì hầu hết người dùng không xem hầu hết các bộ phim nên phần lớn các yếu tố sẽ bằng không

Ma trận thưa thớt chỉ lưu trữ các phần tử khác không và giả sử tất cả các giá trị khác sẽ bằng 0, dẫn đến tiết kiệm đáng kể tính toán. Trong giải pháp của mình, chúng tôi đã tạo một mảng NumPy có hai giá trị khác không, sau đó chuyển đổi nó thành một ma trận thưa thớt. Nếu chúng ta xem ma trận thưa thớt, chúng ta có thể thấy rằng chỉ các giá trị khác không được lưu trữ

# View sparse matrix
print(matrix_sparse)
  (1, 1)    1
  (2, 0)    3

Có một số loại ma trận thưa thớt. Tuy nhiên, trong các ma trận hàng thưa thớt (CSR) được nén,

from pymatrix import matrix

m = matrix([
    [1, 2],
    [3, 4]
])

a = m + m * 2
b = m * m
c = m ** 3

d = m.det()
e = m.inv()
7 và
from pymatrix import matrix

m = matrix([
    [1, 2],
    [3, 4]
])

a = m + m * 2
b = m * m
c = m ** 3

d = m.det()
e = m.inv()
8 đại diện cho các chỉ số (được lập chỉ mục bằng 0) của các giá trị khác 0 lần lượt là
from pymatrix import matrix

m = matrix([
    [1, 2],
    [3, 4]
])

a = m + m * 2
b = m * m
c = m ** 3

d = m.det()
e = m.inv()
9 và
  (1, 1)    1
  (2, 0)    3
0. Ví dụ: phần tử
from pymatrix import matrix

m = matrix([
    [1, 2],
    [3, 4]
])

a = m + m * 2
b = m * m
c = m ** 3

d = m.det()
e = m.inv()
9 nằm ở hàng thứ hai và cột thứ hai. Chúng ta có thể thấy lợi thế của ma trận thưa thớt nếu chúng ta tạo một ma trận lớn hơn nhiều với nhiều phần tử 0 hơn và sau đó so sánh ma trận lớn hơn này với ma trận thưa thớt ban đầu của chúng ta

# Create larger matrix
matrix_large = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                         [0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
                         [3, 0, 0, 0, 0, 0, 0, 0, 0, 0]])

# Create compressed sparse row (CSR) matrix
matrix_large_sparse = sparse.csr_matrix(matrix_large)
# View original sparse matrix
print(matrix_sparse)
  (1, 1)    1
  (2, 0)    3
# View larger sparse matrix
print(matrix_large_sparse)
  (1, 1)    1
  (2, 0)    3

Như chúng ta có thể thấy, mặc dù thực tế là chúng ta đã thêm nhiều phần tử 0 hơn vào ma trận lớn hơn, biểu diễn thưa thớt của nó hoàn toàn giống với ma trận thưa thớt ban đầu của chúng ta. Nghĩa là, việc thêm các phần tử bằng 0 không làm thay đổi kích thước của ma trận thưa thớt

Như đã đề cập, có nhiều loại ma trận thưa thớt khác nhau, chẳng hạn như cột thưa thớt được nén, danh sách danh sách và từ điển khóa. Mặc dù phần giải thích về các loại khác nhau và ý nghĩa của chúng nằm ngoài phạm vi của cuốn sách này, nhưng điều đáng chú ý là mặc dù không có loại ma trận thưa thớt "tốt nhất" nhưng vẫn có những khác biệt có ý nghĩa giữa chúng và chúng ta nên ý thức về lý do tại sao.

Pymatrix là một thư viện ma trận nhẹ được xây dựng bằng Python. Nó hỗ trợ một loạt các hoạt động đại số tuyến tính cơ bản

________số 8

Cài đặt

Cài đặt trực tiếp từ chỉ mục gói Python bằng cách sử dụng

$ pip install pymatrix
1

$ pip install pymatrix

Pymatrix yêu cầu Python 3. 4 hoặc muộn hơn. Gói không có phụ thuộc

Sử dụng dòng lệnh

Pymatrix đóng vai trò như một tiện ích phân tích ma trận dòng lệnh đơn giản. Cài đặt qua

$ pip install pymatrix
1 sẽ tự động cung cấp
$ pip install pymatrix
3 trên dòng lệnh

  (1, 1)    1
  (2, 0)    3
3

Sử dụng thư viện

Pymatrix xuất một lớp ma trận nhẹ, có mục đích chung,

$ pip install pymatrix
4. Một phần tử ma trận có thể là bất kỳ đối tượng tùy ý nào hỗ trợ các toán tử so sánh và số học được yêu cầu. Tất cả các kiểu số gốc của Python — số nguyên, số float, số phức và số hữu tỷ — đều được hỗ trợ

(Lưu ý rằng thư viện này đã được xây dựng cho thoải mái, không phải cho tốc độ. Nếu bạn có nhu cầu tính toán nặng, bạn nên sử dụng giải pháp thay thế dựa trên C như NumPy để thay thế. )

khởi tạo

Bạn có thể khởi tạo trực tiếp một đối tượng ma trận, tùy chọn chỉ định giá trị điền

  (1, 1)    1
  (2, 0)    3
5

Bạn có thể khởi tạo một đối tượng ma trận từ danh sách các danh sách bằng phương thức tĩnh

$ pip install pymatrix
5

  (1, 1)    1
  (2, 0)    3
7

Bạn có thể khởi tạo một đối tượng ma trận từ một chuỗi bằng phương thức tĩnh

$ pip install pymatrix
6

  (1, 1)    1
  (2, 0)    3
9

Dấu phân cách hàng mặc định là dòng mới, dấu phân cách cột mặc định là dấu cách. Khoảng trắng đầu và cuối bị xóa khỏi chuỗi. Các phần tử được phân tích thành phân số (số hữu tỷ) theo mặc định

Bạn có thể khởi tạo một ma trận đơn vị n x n bằng cách sử dụng phương thức tĩnh

$ pip install pymatrix
7

  (1, 1)    1
  (2, 0)    3
1

Hàm phím tắt

$ pip install pymatrix
8 hỗ trợ cú pháp của cả ba phương thức tĩnh

  (1, 1)    1
  (2, 0)    3
3

lặp lại

Các đối tượng ma trận có thể lặp lại. Việc lặp lại tiến hành từ trái sang phải theo cột, sau đó từ trên xuống dưới theo hàng; . e. phần tử trên cùng bên trái sẽ được trả về trước, phần tử dưới cùng bên phải sẽ được trả về sau cùng

Trình vòng lặp trả về một bộ chứa số hàng, số cột và phần tử

  (1, 1)    1
  (2, 0)    3
4

Ngoài ra, phương thức

$ pip install pymatrix
9 trả về một trình vòng lặp chỉ trên các phần tử ma trận

  (1, 1)    1
  (2, 0)    3
6

lập chỉ mục

Ma trận được lập chỉ mục dưới dạng mảng hai chiều

$ pip install pymatrix
0

Lưu ý rằng các chỉ số dựa trên 0 theo quy ước lập trình thay vì dựa trên một theo kiểu toán học điển hình, i. e. phần tử trên cùng bên trái của ma trận là

  (1, 1)    1
  (2, 0)    3
30 thay vì
  (1, 1)    1
  (2, 0)    3
31

phương pháp ma trận

Các đối tượng ma trận hỗ trợ các phương thức sau

  (1, 1)    1
  (2, 0)    3
32

Trả về ma trận liên kết dưới dạng một đối tượng mới

  (1, 1)    1
  (2, 0)    3
33

Trả về cofactor được chỉ định

  (1, 1)    1
  (2, 0)    3
34

Trả về ma trận của các đồng sáng lập dưới dạng một đối tượng mới

  (1, 1)    1
  (2, 0)    3
35

Trả về một trình vòng lặp trên cột đã chỉ định

  (1, 1)    1
  (2, 0)    3
36

Trình lặp trả về một trình lặp cột cho mỗi cột trong ma trận

  (1, 1)    1
  (2, 0)    3
37

Trả về cột đã chỉ định dưới dạng một vectơ cột mới

  (1, 1)    1
  (2, 0)    3
38

Trả về một bản sao của ma trận

  (1, 1)    1
  (2, 0)    3
39

Trả về tích chéo/vectơ của ma trận với

  (1, 1)    1
  (2, 0)    3
50 dưới dạng ma trận mới. Tích chéo chỉ được xác định cho các cặp vectơ cột 3 chiều

  (1, 1)    1
  (2, 0)    3
51

Trả về một ma trận mới với cột được chỉ định đã bị xóa

  (1, 1)    1
  (2, 0)    3
52

Trả về một ma trận mới với hàng đã chỉ định đã bị xóa

  (1, 1)    1
  (2, 0)    3
53

Trả về định thức của ma trận

  (1, 1)    1
  (2, 0)    3
54

chỉ vectơ. Trả về vectơ đơn vị theo hướng của vectơ

  (1, 1)    1
  (2, 0)    3
55

Trả về tích vô hướng/chấm của ma trận với

  (1, 1)    1
  (2, 0)    3
50. Tích vô hướng chỉ được xác định cho các cặp vectơ

  (1, 1)    1
  (2, 0)    3
57

Trả về một iterator trên các phần tử của ma trận

  (1, 1)    1
  (2, 0)    3
58

Nếu

  (1, 1)    1
  (2, 0)    3
59 là
  (1, 1)    1
  (2, 0)    3
70, hai ma trận bằng nhau nếu chúng có cùng kích thước và các phần tử tương ứng của chúng bằng nhau, i. e.
  (1, 1)    1
  (2, 0)    3
71

Nếu

  (1, 1)    1
  (2, 0)    3
59 không phải là ________ 170, hai ma trận bằng nhau nếu chúng có cùng kích thước và các phần tử tương ứng của chúng đồng ý trong phạm vi ________ 159, i. e.
  (1, 1)    1
  (2, 0)    3
75

  (1, 1)    1
  (2, 0)    3
76

Trả về ma trận nghịch đảo nếu nó tồn tại, ngược lại tăng

  (1, 1)    1
  (2, 0)    3
77

  (1, 1)    1
  (2, 0)    3
78

Đúng nếu ma trận khả nghịch. Lưu ý rằng việc xác định xem ma trận có khả nghịch hay không tốn kém về mặt tính toán như thực sự tính toán nghịch đảo

  (1, 1)    1
  (2, 0)    3
79

Đúng nếu ma trận vuông

  (1, 1)    1
  (2, 0)    3
90

chỉ vectơ. Trả về độ dài của vectơ

  (1, 1)    1
  (2, 0)    3
91

Trả về một ma trận mới được hình thành bằng cách ánh xạ

  (1, 1)    1
  (2, 0)    3
92 tới từng phần tử

  (1, 1)    1
  (2, 0)    3
93

Trả về phụ được chỉ định

  (1, 1)    1
  (2, 0)    3
94

Trả về hạng của ma trận

  (1, 1)    1
  (2, 0)    3
95

Trả về dạng cấp bậc hàng của ma trận

  (1, 1)    1
  (2, 0)    3
96

Trả về một trình vòng lặp trên hàng đã chỉ định

  (1, 1)    1
  (2, 0)    3
97

Hoạt động hàng tại chỗ. Thêm ________ 198 lần hàng ________ 199 vào hàng ________ 210

  (1, 1)    1
  (2, 0)    3
11

Hoạt động hàng tại chỗ. Nhân hàng đã chỉ định với vô hướng

  (1, 1)    1
  (2, 0)    3
98

  (1, 1)    1
  (2, 0)    3
13

Hoạt động hàng tại chỗ. Hoán đổi hai hàng được chỉ định

  (1, 1)    1
  (2, 0)    3
14

Trình lặp trả về một trình lặp hàng cho mỗi hàng trong ma trận

  (1, 1)    1
  (2, 0)    3
15

Trả về hàng đã chỉ định dưới dạng vectơ hàng mới

  (1, 1)    1
  (2, 0)    3
16

Trả về dạng cấp bậc hàng rút gọn của ma trận

  (1, 1)    1
  (2, 0)    3
17

Trả về chuyển vị của ma trận dưới dạng một đối tượng mới

Chức năng mô-đun

Mô-đun

$ pip install pymatrix
3 xuất các chức năng sau

  (1, 1)    1
  (2, 0)    3
19

Trả về

  (1, 1)    1
  (2, 0)    3
30 - tích trong/vô hướng/chấm của các vectơ
  (1, 1)    1
  (2, 0)    3
31 và
  (1, 1)    1
  (2, 0)    3
32

  (1, 1)    1
  (2, 0)    3
33

Trả về

  (1, 1)    1
  (2, 0)    3
34 - vectơ/tích chéo của vectơ cột 3D
  (1, 1)    1
  (2, 0)    3
31 và
  (1, 1)    1
  (2, 0)    3
32

$ pip install pymatrix
8

Hàm tắt để khởi tạo đối tượng

$ pip install pymatrix
4;

Thư viện nào được sử dụng cho ma trận trong Python?

matlib ) Mô-đun này chứa tất cả các hàm trong không gian tên gọn gàng, với các hàm thay thế sau trả về ma trận thay vì ndarray. Diễn giải đầu vào dưới dạng ma trận.

Bạn có thể tạo ma trận bằng Python không?

Tạo ma trận bằng Python . Danh sách có thể được tạo nếu bạn đặt tất cả các mục hoặc thành phần bắt đầu bằng '[' và kết thúc bằng ']' (dấu ngoặc vuông) và phân tách từng thành phần bằng dấu phẩy. Python allows developers to implement matrices using the nested list. Lists can be created if you place all items or elements starting with '[' and ending with ']' (square brackets) and separate each element by a comma.

NumPy có phải là ma trận không?

Ma trận numpy hoàn toàn là 2 chiều , trong khi mảng numpy (ndarray) là N chiều. Các đối tượng ma trận là một lớp con của ndarray nên chúng kế thừa tất cả các thuộc tính và phương thức của ndarray.

Python có thể xử lý ma trận không?

NumPy cung cấp cho người dùng Python khả năng thao tác ma trận — một điều rất cần thiết cho AI. Theo truyền thống, MATLAB là công cụ thao tác ma trận phổ biến nhất.