bsr_array#
- class scipy.sparse.bsr_array(arg1, shape=None, dtype=None, copy=False, blocksize=None, *, maxprint=None)[Quelle]#
Block Sparse Row-Format sparse array.
- Dies kann auf verschiedene Arten instanziiert werden
- bsr_array(D, [blocksize=(R,C)])
wobei D eine 2D-ndarray ist.
- bsr_array(S, [blocksize=(R,C)])
mit einem anderen Sparse-Array oder einer anderen Sparse-Matrix S (entspricht S.tobsr())
- bsr_array((M, N), [blocksize=(R,C), dtype])
zum Erstellen eines leeren Sparse-Arrays mit der Form (M, N). dtype ist optional und hat standardmäßig den Wert 'd'.
- bsr_array((data, ij), [blocksize=(R,C), shape=(M, N)])
wobei
dataundijdie Bedingunga[ij[0, k], ij[1, k]] = data[k]erfüllen.- bsr_array((data, indices, indptr), [shape=(M, N)])
ist die Standard-BSR-Repräsentation, bei der die Block-Spaltenindizes 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 Array-Dimensionen aus den Index-Arrays abgeleitet.
- Attribute:
- dtypedtype
Datentyp des Arrays
- shape2-tuple
Form des Arrays
- ndimint
Anzahl der Dimensionen (dies ist immer 2)
nnzAnzahl der gespeicherten Werte, einschließlich expliziter Nullen.
sizeAnzahl der gespeicherten Werte.
- data
Datenarray im BSR-Format des Arrays
- indices
Indexarray im BSR-Format des Arrays
- indptr
Indexzeigerarray im BSR-Format des Arrays
blocksizeBlockgröß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__()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.
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.
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.
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 dieses Sparse Arrays 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__
__mul__
Hinweise
Sparse Arrays können in arithmetischen Operationen verwendet werden: sie unterstützen Addition, Subtraktion, Multiplikation, Division und Matrizenpotenz.
Zusammenfassung des BSR-Formats
Das Block Sparse Row (BSR)-Format ist dem Compressed Sparse Row (CSR)-Format sehr ähnlich. BSR eignet sich für dünnbesetzte Matrizen mit dichten Untermatrizen, wie im letzten Beispiel unten gezeigt. Solche dünnbesetzten Blockmatrizen entstehen häufig bei Vektor-wertigen Finite-Elemente-Diskretisierungen. In solchen Fällen ist BSR für viele dünnbesetzte arithmetische Operationen deutlich effizienter als CSR und CSC.
Blockgröße
Die Blockgröße (R, C) muss die Form des Sparse-Arrays (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 Sparse-Arrays unterstützen kein Slicing.
Beispiele
>>> import numpy as np >>> from scipy.sparse import bsr_array >>> bsr_array((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_array((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_array((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]])