#67 · Linear Algebra · Easy
⊣ Solve on deep-ml.comConvert a dense matrix to Compressed Sparse Column (CSC) format. Return three arrays: values (non-zero elements column-wise), row_indices (row index of each non-zero element), and col_ptr (index in values where each column starts).
def dense_to_csc(matrix):
rows = len(matrix)
cols = len(matrix[0]) if rows > 0 else 0
values = []
row_indices = []
col_ptr = [0]
for j in range(cols):
for i in range(rows):
if matrix[i][j] != 0:
values.append(matrix[i][j])
row_indices.append(i)
col_ptr.append(len(values))
return values, row_indices, col_ptrcol_ptr.col_ptr[j] to col_ptr[j+1] gives the range of indices in values and row_indices for column j.