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.bincountmit minlengthA.shape[1]für CSR undA.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])