bsr_matrix#
- class scipy.sparse.bsr_matrix(arg1, shape=None, dtype=None, copy=False, blocksize=None, *, maxprint=None)[Quelle]#
Block Sparse Row (BSR) Format Sparse Matrix.
- Dies kann auf verschiedene Arten instanziiert werden
- bsr_matrix(D, [blocksize=(R,C)])
wobei D ein 2D-ndarray ist.
- bsr_matrix(S, [blocksize=(R,C)])
mit einer anderen dünnbesetzten (sparse) Array oder Matrix S (äquivalent zu S.tobsr())
- bsr_matrix((M, N), [blocksize=(R,C), dtype])
zum Erstellen einer leeren dünnbesetzten Matrix mit der Form (M, N). dtype ist optional und hat standardmäßig den Wert 'd'.
- bsr_matrix((data, ij), [blocksize=(R,C), shape=(M, N)])
wobei
dataundijdie Bedingunga[ij[0, k], ij[1, k]] = data[k]erfüllen.- bsr_matrix((data, indices, indptr), [shape=(M, N)])
ist die Standard-BSR-Darstellung, bei der die Blockspaltenindizes für Zeile i in
indices[indptr[i]:indptr[i+1]]gespeichert sind und ihre entsprechenden Blockwerte indata[ indptr[i]: indptr[i+1] ]gespeichert sind. Wenn der Parameter shape nicht angegeben wird, 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
BSR-Format-Datenarray der Matrix
- indices
BSR-Format-Indexarray der Matrix
- indptr
BSR-Format-Indexzeigerarray der Matrix
BlockgrößeBlockgröße der Matrix.
has_sorted_indicesboolOb die Indizes sortiert sind
has_canonical_formatboolOb 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 BSR-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 Nullelemente direkt.
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.
Duplizierte Array-/Matrixeinträge eliminieren, 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])Dieses Array/diese Matrix in das Block Sparse Row-Format konvertieren.
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.
Zusammenfassung des BSR-Formats
Das Block Sparse Row (BSR) Format ähnelt stark dem Compressed Sparse Row (CSR) Format. BSR eignet sich für dünnbesetzte Matrizen mit dichten Untermatrizen, wie im letzten Beispiel unten gezeigt. Solche dünnbesetzten Blockmatrizen treten häufig bei diskretisierten Finite-Element-Methoden mit Vektorwerten auf. In solchen Fällen ist BSR für viele dünnbesetzte arithmetische Operationen erheblich effizienter als CSR und CSC.
Blockgröße
Die Blockgröße (R, C) muss die Form der dünnbesetzten Matrix (M, N) gleichmäßig teilen. Das heißt, R und C müssen die Beziehung
M % R = 0undN % C = 0erfüllen.Wenn keine Blockgröße angegeben wird, wird eine einfache Heuristik angewendet, um eine geeignete Blockgröße zu bestimmen.
Kanonisches Format
Im kanonischen Format gibt es keine doppelten Blöcke und die Indizes sind zeilenweise sortiert.
Einschränkungen
Block Sparse Row Format dünnbesetzte Matrizen unterstützen keine Slicing-Operationen.
Beispiele
>>> import numpy as np >>> from scipy.sparse import bsr_matrix >>> bsr_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]) >>> bsr_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]).repeat(4).reshape(6, 2, 2) >>> bsr_matrix((data,indices,indptr), shape=(6, 6)).toarray() array([[1, 1, 0, 0, 2, 2], [1, 1, 0, 0, 2, 2], [0, 0, 0, 0, 3, 3], [0, 0, 0, 0, 3, 3], [4, 4, 5, 5, 6, 6], [4, 4, 5, 5, 6, 6]])