Dexter
Dexter

Reputation: 11841

Dump a sparse matrix into a file

I have a scipy.sparse.csr matrix and would like to dump it to a CSV file. Is there a way to preserve the sparsity of the matrix and write it to a CSV?

Upvotes: 7

Views: 7955

Answers (2)

Abhi25t
Abhi25t

Reputation: 4683

Now with Scipy 0.19, it is super easy:

import scipy.sparse as sp
m = sp.csr_matrix([[1,0,0],[0,1,0],[0,0,1]])

sp.save_npz("file_name.npz", m)

Loading file to memory

new_m = sp.load_npz("file_name.npz")

Upvotes: 1

Adam
Adam

Reputation: 17379

SciPy includes functions that read/write sparse matrices in the MatrixMarket format via the scipy.io module, including mmwrite: http://docs.scipy.org/doc/scipy/reference/generated/scipy.io.mmwrite.html

MatrixMarket is not CSV, but close. It consists of a one-line header that has #rows, #cols, # of nonzeros, followed by one line per nonzero. Each of these lines is the row index, column index, value. You could write a simple script that turns whitespace into commas and you'd have a CSV.

Upvotes: 8

Related Questions