coo_array#
- class scipy.sparse.coo_array(arg1, shape=None, dtype=None, copy=False, *, maxprint=None)[Quelle]#
Ein dünn besetztes Array im COOrdinate-Format.
Auch bekannt als „ijv“- oder „Triplet“-Format.
- Dies kann auf verschiedene Arten instanziiert werden
- coo_array(D)
wobei D ein ndarray ist
- coo_array(S)
mit einem anderen dünn besetzten Array oder einer Matrix S (entspricht S.tocoo())
- coo_array(shape, [dtype])
zum Erstellen eines leeren dünn besetzten Arrays mit der Form
shape. dtype ist optional und hat standardmäßig dtype=’d’.- coo_array((data, coords), [shape])
- zum Erstellen aus vorhandenen Daten- und Index-Arrays
data[:] die Einträge des dünn besetzten Arrays, in beliebiger Reihenfolge
coords[i][:] die Achsen-i-Koordinaten der Dateneinträge
wobei
A[coords] = data, und coords ein Tupel von Index-Arrays ist. Wenn shape nicht angegeben ist, wird es aus den Index-Arrays abgeleitet.
- Attribute:
- dtypedtype
Datentyp des dünn besetzten Arrays
- shapeTupel von Ganzzahlen
Form des dünn besetzten Arrays
- ndimint
Anzahl der Dimensionen des dünn besetzten Arrays
nnzAnzahl der gespeicherten Werte, einschließlich expliziter Nullen.
sizeAnzahl der gespeicherten Werte.
- data
COO-Format-Datenarray des dünn besetzten Arrays
- coords
COO-Format-Tupel von Index-Arrays
- has_canonical_formatbool
Ob die Matrix sortierte Koordinaten und keine Duplikate hat
formatFormatzeichenkette für Matrix.
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.
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.
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.
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 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.
__mul__
Hinweise
Sparse Arrays können in arithmetischen Operationen verwendet werden: sie unterstützen Addition, Subtraktion, Multiplikation, Division und Matrizenpotenz.
- Vorteile des COO-Formats
ermöglicht schnelle Konvertierung zwischen dünn besetzten 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 Erstellen von dünn besetzten Arrays
Nachdem ein COO-Array erstellt wurde, konvertieren Sie es in das CSR- oder CSC-Format für schnelle arithmetische Operationen und Matrix-Vektor-Operationen
Standardmäßig werden beim Konvertieren in das CSR- oder CSC-Format doppelte (i,j)-Einträge summiert. Dies erleichtert die effiziente Erstellung von Finite-Elemente-Matrizen 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)
Datenarrays KÖNNEN explizite Nullen enthalten.
Beispiele
>>> # Constructing an empty sparse array >>> import numpy as np >>> from scipy.sparse import coo_array >>> coo_array((3, 4), dtype=np.int8).toarray() array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], dtype=int8)
>>> # Constructing a sparse array 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_array((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 sparse array 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_array((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]])