scipy.sparse.csr_matrix.

count_nonzero#

csr_matrix.count_nonzero(axis=None)[Quelle]#

Anzahl der Nicht-Null-Einträge, äquivalent zu

np.count_nonzero(a.toarray(), axis=axis)

Im Gegensatz zur Eigenschaft nnz, die die Anzahl der gespeicherten Einträge (die Länge des Datenattributs) zurückgibt, zählt diese Methode die tatsächliche Anzahl der Nicht-Null-Einträge in den Daten.

Doppelte Einträge werden vor dem Zählen summiert.

Parameter:
axis{-2, -1, 0, 1, None} optional

Zähle Nicht-Null-Werte für das gesamte Array oder entlang einer angegebenen Achse.

Hinzugefügt in Version 1.15.0.

Rückgabe:
numpy-Array

Ein reduziertes Array (keine Achse axis), das die Anzahl der Nicht-Null-Werte für jeden der Indizes der Nicht-Achsen-Dimensionen enthält.

Hinweise

Wenn Sie Nicht-Null- und explizite Null-gespeicherte Werte (z. B. nnz) entlang einer Achse zählen möchten, werden zwei schnelle Idiome durch numpy-Funktionen für die gängigen CSR-, CSC-, COO-Formate bereitgestellt.

Für die Hauptachse in CSR (Zeilen) und CSC (Spalten) verwenden Sie np.diff

>>> import numpy as np
>>> import scipy as sp
>>> A = sp.sparse.csr_array([[4, 5, 0], [7, 0, 0]])
>>> major_axis_stored_values = np.diff(A.indptr)  # -> np.array([2, 1])

Für die Nebenachse in CSR (Spalten) und CSC (Zeilen) verwenden Sie numpy.bincount mit minlength A.shape[1] für CSR und A.shape[0] für CSC

>>> csr_minor_stored_values = np.bincount(A.indices, minlength=A.shape[1])

Für COO verwenden Sie den Ansatz der Nebenachse für eine beliebige axis

>>> A = A.tocoo()
>>> coo_axis0_stored_values = np.bincount(A.coords[0], minlength=A.shape[1])
>>> coo_axis1_stored_values = np.bincount(A.coords[1], minlength=A.shape[0])

Beispiele

>>> A = sp.sparse.csr_array([[4, 5, 0], [7, 0, 0]])
>>> A.count_nonzero(axis=0)
array([2, 1, 0])