csr_matrix#
- class scipy.sparse.csr_matrix(arg1, shape=None, dtype=None, copy=False, *, maxprint=None)[Quelle]#
Compressed Sparse Row (CSR) Matrix.
- Dies kann auf verschiedene Arten instanziiert werden
- csr_matrix(D)
wobei D ein 2-D ndarray ist
- csr_matrix(S)
mit einer anderen Sparse-Array oder Matrix S (entspricht S.tocsr())
- csr_matrix((M, N), [dtype])
zur Erstellung einer leeren Matrix mit der Form (M, N). dtype ist optional und standardmäßig auf dtype='d' gesetzt.
- csr_matrix((data, (row_ind, col_ind)), [shape=(M, N)])
wobei
data,row_indundcol_inddie Beziehunga[row_ind[k], col_ind[k]] = data[k]erfüllen.- csr_matrix((data, indices, indptr), [shape=(M, N)])
ist die Standard-CSR-Darstellung, bei der die Spaltenindizes für Zeile i in
indices[indptr[i]:indptr[i+1]]gespeichert sind und ihre entsprechenden Werte indata[indptr[i]:indptr[i+1]]gespeichert sind. Wenn der shape-Parameter nicht angegeben ist, werden die Matrixdimensionen aus den Index-Arrays abgeleitet.
- Attribute:
- dtypedtype
Datentyp der Matrix
shape2-TupelForm der Matrix
- ndimint
Anzahl der Dimensionen (dies ist immer 2)
nnzAnzahl der gespeicherten Werte, einschließlich expliziter Nullen.
sizeAnzahl der gespeicherten Werte.
- data
CSR-Format-Datenarray der Matrix
- indices
CSR-Format-Indexarray der Matrix
- indptr
CSR-Format-Indexzeigerarray der Matrix
has_sorted_indicesOb die Indizes sortiert sind
has_canonical_formatOb das Array/die Matrix sortierte Indizes und keine Duplikate hat
TTransponierte.
Methoden
__len__()__mul__(other)arcsin()Elementweise Arcussinus.
arcsinh()Elementweise Arcusshinus.
arctan()Elementweise Arctangens.
arctanh()Elementweise Arcustangens.
argmax([axis, out, explicit])Gibt die Indizes der maximalen Elemente entlang einer Achse zurück.
argmin([axis, out, explicit])Gibt die Indizes der minimalen Elemente entlang einer Achse zurück.
asformat(format[, copy])Gibt dieses Array/diese Matrix im übergebenen Format zurück.
asfptype()Matrix in Fließkommaformat hochstapeln (falls erforderlich)
astype(dtype[, casting, copy])Gibt die Elemente des Arrays/der Matrix in einem angegebenen Typ aus.
ceil()Elementweise Aufrundung.
check_format([full_check])Prüft, ob das Array/die Matrix das CSR- oder CSC-Format einhält.
conj([copy])Elementweise komplexe Konjugation.
conjugate([copy])Elementweise komplexe Konjugation.
copy()Gibt eine Kopie dieses Arrays/dieser Matrix zurück.
count_nonzero([axis])Anzahl der Nicht-Null-Einträge, äquivalent zu
deg2rad()Elementweise Umrechnung von Grad in Radiant.
diagonal([k])Gibt die k-te Diagonale des Arrays/der Matrix zurück.
dot(other)Gewöhnliches Skalarprodukt
Entfernt Nulleinträge aus dem Array/der Matrix
expm1()Elementweise expm1.
floor()Elementweise Abrundung.
getH()Gibt die hermitesche Transponierte dieser Matrix zurück.
Ruft die Form der Matrix ab
getcol(j)Gibt eine Kopie der Spalte j der Matrix als (m x 1) Sparse-Matrix (Spaltenvektor) zurück.
Matrixspeicherformat
Maximale Anzahl von Elementen, die beim Drucken angezeigt werden.
getnnz([axis])Anzahl der gespeicherten Werte, einschließlich expliziter Nullen.
getrow(i)Gibt eine Kopie der Zeile i der Matrix als (1 x n) Sparse-Matrix (Zeilenvektor) zurück.
log1p()Elementweise log1p.
max([axis, out, explicit])Gibt das Maximum des Arrays/der Matrix oder das Maximum entlang einer Achse zurück.
maximum(other)Elementweises Maximum zwischen diesem und einem anderen Array/einer anderen Matrix.
mean([axis, dtype, out])Berechnet das arithmetische Mittel entlang der angegebenen Achse.
min([axis, out, explicit])Gibt das Minimum des Arrays/der Matrix oder das Maximum entlang einer Achse zurück.
minimum(other)Elementweises Minimum zwischen diesem und einem anderen Array/einer anderen Matrix.
multiply(other)Elementweise Multiplikation mit einem anderen Array/einer anderen Matrix.
nanmax([axis, out, explicit])Gibt das Maximum zurück und ignoriert alle NaNs entlang einer Achse.
nanmin([axis, out, explicit])Gibt das Minimum zurück und ignoriert alle NaNs entlang einer Achse.
nonzero()Nicht-Null-Indizes des Arrays/der Matrix.
power(n[, dtype])Diese Funktion führt elementweise Potenzierung durch.
prune()Entfernt leeren Speicherplatz nach allen Nicht-Null-Elementen.
rad2deg()Elementweise Umrechnung von Radiant in Grad.
reshape(self, shape[, order, copy])Gibt einem Sparse Array/einer Sparse Matrix eine neue Form, ohne dessen/deren Daten zu ändern.
resize(*shape)Ändert die Größe des Arrays/der Matrix direkt auf die durch
shapegegebenen Dimensionen.rint()Elementweise Rundung zur nächsten ganzen Zahl.
set_shape(shape)Setzt die Form der Matrix inplace
setdiag(values[, k])Setzt diagonale oder nicht-diagonale Elemente des Arrays/der Matrix.
sign()Elementweises Vorzeichen.
sin()Elementweise Sinus.
sinh()Elementweise Sinus hyperbolicus.
Sortiert die Indizes dieses Arrays/dieser Matrix *direkt*.
Gibt eine Kopie dieses Arrays/dieser Matrix mit sortierten Indizes zurück.
sqrt()Elementweise Quadratwurzel.
sum([axis, dtype, out])Summiert die Elemente des Arrays/der Matrix über eine gegebene Achse.
Entfernt Duplikateinträge, indem sie addiert werden.
tan()Elementweise Tangens.
tanh()Elementweise Tangens hyperbolicus.
toarray([order, out])Gibt eine dichte ndarray-Darstellung dieses Sparse Arrays/dieser Sparse Matrix zurück.
tobsr([blocksize, copy])Konvertiert dieses Array/diese Matrix in das Block Sparse Row (BSR)-Format.
tocoo([copy])Konvertiert dieses Array/diese Matrix in das COOrdinate (COO)-Format.
tocsc([copy])Konvertiert dieses Array/diese Matrix in das Compressed Sparse Column (CSC)-Format.
tocsr([copy])Konvertiert dieses Array/diese Matrix in das Compressed Sparse Row (CSR)-Format.
todense([order, out])Gibt eine dichte Darstellung dieser Sparse-Matrix zurück.
todia([copy])Konvertiert dieses Array/diese Matrix in das sparse DIAgonal-Format.
todok([copy])Konvertiert dieses Array/diese Matrix in das Dictionary Of Keys (DOK)-Format.
tolil([copy])Konvertiert dieses Array/diese Matrix in das List of Lists (LIL)-Format.
trace([offset])Gibt die Summe entlang der Diagonalen des Sparse Arrays/der Sparse Matrix zurück.
transpose([axes, copy])Kehrt die Dimensionen des Sparse Arrays/der Sparse Matrix um.
trunc()Elementweise Trunkierung.
__getitem__
Hinweise
Sparse-Matrizen können in arithmetischen Operationen verwendet werden: sie unterstützen Addition, Subtraktion, Multiplikation, Division und Matrixpotenz.
- Vorteile des CSR-Formats
effiziente arithmetische Operationen CSR + CSR, CSR * CSR, etc.
effizientes Zeilenslicing
schnelle Matrix-Vektor-Produkte
- Nachteile des CSR-Formats
langsame Spaltenslicing-Operationen (betrachten Sie CSC)
Änderungen an der Sparsity-Struktur sind teuer (erwägen Sie LIL oder DOK)
- Kanonisches Format
Innerhalb jeder Zeile werden die Indizes nach Spalte sortiert.
Es gibt keine doppelten Einträge.
Beispiele
>>> import numpy as np >>> from scipy.sparse import csr_matrix >>> csr_matrix((3, 4), dtype=np.int8).toarray() array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], dtype=int8)
>>> row = np.array([0, 0, 1, 2, 2, 2]) >>> col = np.array([0, 2, 2, 0, 1, 2]) >>> data = np.array([1, 2, 3, 4, 5, 6]) >>> csr_matrix((data, (row, col)), shape=(3, 3)).toarray() array([[1, 0, 2], [0, 0, 3], [4, 5, 6]])
>>> indptr = np.array([0, 2, 3, 6]) >>> indices = np.array([0, 2, 2, 0, 1, 2]) >>> data = np.array([1, 2, 3, 4, 5, 6]) >>> csr_matrix((data, indices, indptr), shape=(3, 3)).toarray() array([[1, 0, 2], [0, 0, 3], [4, 5, 6]])
Doppelte Einträge werden summiert
>>> row = np.array([0, 1, 2, 0]) >>> col = np.array([0, 1, 1, 0]) >>> data = np.array([1, 2, 4, 8]) >>> csr_matrix((data, (row, col)), shape=(3, 3)).toarray() array([[9, 0, 0], [0, 2, 0], [0, 4, 0]])
Als Beispiel für die inkrementelle Erstellung einer CSR-Matrix zeigt der folgende Ausschnitt den Aufbau einer Term-Dokumenten-Matrix aus Texten
>>> docs = [["hello", "world", "hello"], ["goodbye", "cruel", "world"]] >>> indptr = [0] >>> indices = [] >>> data = [] >>> vocabulary = {} >>> for d in docs: ... for term in d: ... index = vocabulary.setdefault(term, len(vocabulary)) ... indices.append(index) ... data.append(1) ... indptr.append(len(indices)) ... >>> csr_matrix((data, indices, indptr), dtype=int).toarray() array([[2, 1, 0, 0], [0, 1, 1, 1]])