Numpy.matrix немесе массивді сирек матрицаны айқындау үшін қалай өзгертуге болады

SciPy сирек матрицасы үшін NumPy матрицасына немесе массивіне ауысу үшін todense() немесе toarray() қолдануға болады. Инверсияны орындаудың қандай функциялары бар?

Мен іздегенімде, бірақ қандай кілт сөздердің дұрыс соққы болуы керек екенін білмедім.

43

3 жауаптар

Санаулы матрицаны инициализациялау кезінде numpy жиым немесе матрицаны дәлел ретінде беруіңізге болады. КӘЖ матрицасы үшін, мысалы, келесі әрекеттерді орындауға болады.

>>> import numpy as np
>>> from scipy import sparse
>>> A = np.array([[1,2,0],[0,0,3],[1,0,4]])
>>> B = np.matrix([[1,2,0],[0,0,3],[1,0,4]])

>>> A
array([[1, 2, 0],
       [0, 0, 3],
       [1, 0, 4]])

>>> sA = sparse.csr_matrix(A)   # Here's the initialization of the sparse matrix.
>>> sB = sparse.csr_matrix(B)

>>> sA
<3x3 sparse matrix of type ''
        with 5 stored elements in Compressed Sparse Row format>

>>> print sA
  (0, 0)        1
  (0, 1)        2
  (1, 2)        3
  (2, 0)        1
  (2, 2)        4
75
қосылды

Бірнеше сирек матрицалық сыныптар бар.

bsr_matrix (arg1 [ пішін, диптер, көшірме, блок-разрядтар]) Сызық жолдың матрицасын блоктау
  coo_matrix (arg1 [ форма, dtype, көшірме)) COOrdinate пішіміндегі сирек матрица.   csc_matrix (arg1 [ форма, dtype, көшірме]) Сығылған сирек баған матрицасы   csr_matrix (arg1 [ форма, dtype, көшірме]) Сығылған сирек жол матрицасы   dia_matrix (arg1 [ пішін, dtype, көшірме]) DIAgonal қоймасы бар сирек матрица   dok_matrix (arg1 [ пішін, dtype, көшірме]) сирек матрица негізіндегі кілттер сөздігі   lil_matrix (arg1 [ форма, dtype, көшірме]) Жолға негізделген тізім сирек матрица

Олардың кез-келгені конверсияны жасай алады.

import numpy as np
from scipy import sparse
a=np.array([[1,0,1],[0,0,1]])
b=sparse.csr_matrix(a)
print(b)

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

http://docs.scipy.org/doc/scipy/ бөлімін қараңыз. сілтеме/sparse.html # пайдалану-ақпараттары .

17
қосылды

Керісінше, функция inv (A) болып табылады, бірақ оны пайдалануды ұсынамын, өйткені үлкен матрицалар үшін бұл өте қымбат және тұрақсыз. Оның орнына кері жаққа жуықтау керек, немесе Ax = b сіз шешу қажет болса, -1 қажет емес.

0
қосылды
Сұрақ матрицаның операциясы ретінде кері емес, numpy матрицасы/массиві арқылы сквирленген сирек матрицаны қалай жасау керектігін сұрайды.
қосылды автор Virgil Ming, көзі