I’m looking for the most performant way to modify a large SparseMatrixCSC in-place. The matrix is initially built using the sp = sparse(I,J,K) method. Later, I need to modify only the non-zero entries in sp. I’m tempted to do
sp.nzval .= newK
where newK is the updated K vector. This is really fast, but I worry this approach is fragile (as e.g. there are no guarantees that zeros in the original K are dropped when building the original sp, or that the order of sp.nzval is the same as in K). Can this be made safe? If not, is there some recommended approach with comparable performance?