scipy.sparse.lil_matrix.

count_nonzero#

lil_matrix.count_nonzero(axis=None)[原始碼]#

非零條目的數量,等同於

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

與 nnz 屬性 (返回儲存條目的數量,即 data 屬性的長度) 不同,此方法計算 data 中實際非零條目的數量。

重複的條目在計數前會被加總。

參數:
axis{-2, -1, 0, 1, None} 選項性

計算整個陣列或沿指定軸的非零值。

在版本 1.15.0 中新增。

返回:
numpy 陣列

一個縮減後的陣列 (如果沒有軸 axis),其中包含每個非軸維度索引的非零值數量。

註解

如果您想計算沿軸的非零值和顯式儲存的零值 (例如 nnz),numpy 函數為常見的 CSR、CSC、COO 格式提供了兩種快速的慣用方法。

對於 CSR (rows) 和 CSC (cols) 中的主軸,請使用 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])

對於 CSR (cols) 和 CSC (rows) 中的次軸,請使用 numpy.bincount,並為 CSR 設定 minlength A.shape[1],為 CSC 設定 A.shape[0]

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

對於 COO,針對任一 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])

範例

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