scipy.sparse.

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
  1. data[:] die Einträge des dünn besetzten Arrays, in beliebiger Reihenfolge

  2. 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

nnz

Anzahl der gespeicherten Werte, einschließlich expliziter Nullen.

size

Anzahl 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

format

Formatzeichenkette für Matrix.

T

Transponierte.

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.

eliminate_zeros()

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 shape gegebenen 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.

sum_duplicates()

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]])