#65 · Linear Algebra · Easy
⊣ Solve on deep-ml.comConvert a dense matrix to Compressed Sparse Row (CSR) format. Return three arrays: values (non-zero elements), col_indices (column index of each non-zero element), and row_ptr (index in values where each row starts).
def dense_to_csr(matrix):
values = []
col_indices = []
row_ptr = [0]
for row in matrix:
for j, val in enumerate(row):
if val != 0:
values.append(val)
col_indices.append(j)
row_ptr.append(len(values))
return values, col_indices, row_ptrrow_ptr.row_ptr[i] to row_ptr[i+1] gives the range of indices in values and col_indices for row i.