coo_matrix#
- class scipy.sparse.coo_matrix(arg1, shape=None, dtype=None, copy=False, *, maxprint=None)[Quelle]#
Eine dünnbesetzte Matrix im COOrdinate-Format.
Auch bekannt als das „ijv“- oder „Triplet“-Format.
- Dies kann auf verschiedene Arten instanziiert werden
- coo_matrix(D)
wobei D ein 2-D ndarray ist
- coo_matrix(S)
mit einem anderen dünnbesetzten Array oder einer dünnbesetzten Matrix S (entspricht S.tocoo())
- coo_matrix((M, N), [dtype])
zur Erstellung einer leeren Matrix mit der Form (M, N). dtype ist optional und standardmäßig auf dtype='d' gesetzt.
- coo_matrix((data, (i, j)), [shape=(M, N)])
- zur Konstruktion aus drei Arrays
data[:] die Einträge der Matrix, in beliebiger Reihenfolge
i[:] die Zeilenindizes der Matrixeinträge
j[:] die Spaltenindizes der Matrixeinträge
Wobei
A[i[k], j[k]] = data[k]. Wenn die Form nicht angegeben ist, wird sie 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
COO-Format Daten-Array der Matrix
- row
COO-Format Zeilenindex-Array der Matrix
- col
COO-Format Spaltenindex-Array der Matrix
- has_canonical_formatbool
Ob die Matrix sortierte Indizes und keine Duplikate hat.
formatFormatzeichenkette für Matrix.
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.
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)Gibt das Skalarprodukt zweier Arrays zurück.
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.
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.
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.
tensordot(other[, axes])Gibt das Tensordot-Produkt mit einem anderen Array entlang der angegebenen Achsen zurück.
toarray([order, out])Gibt eine dichte ndarray-Darstellung dieses Sparse Arrays/dieser Sparse Matrix zurück.
tobr([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])Diese Array/Matrix in das Compressed Sparse Column (CSC)-Format konvertieren
tocsr([copy])Diese Array/Matrix in das Compressed Sparse Row-Format konvertieren
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.
Hinweise
Sparse-Matrizen können in arithmetischen Operationen verwendet werden: sie unterstützen Addition, Subtraktion, Multiplikation, Division und Matrixpotenz.
- Vorteile des COO-Formats
ermöglicht schnelle Konvertierung zwischen dünnbesetzten Formaten
erlaubt doppelte Einträge (siehe Beispiel)
sehr schnelle Konvertierung zu und von CSR/CSC-Formaten
- Nachteile des COO-Formats
- unterstützt nicht direkt
arithmetische Operationen
Slicing
- Beabsichtigte Verwendung
COO ist ein schnelles Format zum Konstruieren dünnbesetzter Matrizen.
Nachdem eine COO-Matrix konstruiert wurde, konvertieren Sie sie in das CSR- oder CSC-Format für schnelle Arithmetik und Matrix-Vektor-Operationen.
Beim Konvertieren in das CSR- oder CSC-Format werden doppelte (i,j)-Einträge standardmäßig summiert. Dies ermöglicht die effiziente Konstruktion von finiten Elementmatrizen und ähnlichem. (siehe Beispiel)
- Kanonisches Format
Einträge und Koordinaten sortiert nach Zeile, dann Spalte.
Es gibt keine doppelten Einträge (d. h. doppelte (i,j)-Positionen).
Daten-Arrays KÖNNEN explizite Nullen enthalten.
Beispiele
>>> # Constructing an empty matrix >>> import numpy as np >>> from scipy.sparse import coo_matrix >>> coo_matrix((3, 4), dtype=np.int8).toarray() array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], dtype=int8)
>>> # Constructing a matrix using ijv format >>> row = np.array([0, 3, 1, 0]) >>> col = np.array([0, 3, 1, 2]) >>> data = np.array([4, 5, 7, 9]) >>> coo_matrix((data, (row, col)), shape=(4, 4)).toarray() array([[4, 0, 9, 0], [0, 7, 0, 0], [0, 0, 0, 0], [0, 0, 0, 5]])
>>> # Constructing a matrix with duplicate coordinates >>> row = np.array([0, 0, 1, 3, 1, 0, 0]) >>> col = np.array([0, 2, 1, 3, 1, 0, 0]) >>> data = np.array([1, 1, 1, 1, 1, 1, 1]) >>> coo = coo_matrix((data, (row, col)), shape=(4, 4)) >>> # Duplicate coordinates are maintained until implicitly or explicitly summed >>> np.max(coo.data) 1 >>> coo.toarray() array([[3, 0, 1, 0], [0, 2, 0, 0], [0, 0, 0, 0], [0, 0, 0, 1]])