numpy array to scipy.sparse matrix numpy array to scipy.sparse matrix python-3.x python-3.x

numpy array to scipy.sparse matrix


I usually do something like

>>> import numpy, scipy.sparse>>> A = numpy.array([[0,1,0],[0,0,0],[1,0,0]])>>> Asp = scipy.sparse.csr_matrix(A)>>> Asp<3x3 sparse matrix of type '<type 'numpy.int64'>'    with 2 stored elements in Compressed Sparse Row format>


A very useful and pertinent example is in the help!

import scipy.sparse as sphelp(sp)

This gives:

Example 2---------Construct a matrix in COO format:>>> from scipy import sparse>>> from numpy import array>>> I = array([0,3,1,0])>>> J = array([0,3,1,2])>>> V = array([4,5,7,9])>>> A = sparse.coo_matrix((V,(I,J)),shape=(4,4))

It's also worth noting the various constructors are (again from the help):

    1. csc_matrix: Compressed Sparse Column format    2. csr_matrix: Compressed Sparse Row format    3. bsr_matrix: Block Sparse Row format    4. lil_matrix: List of Lists format    5. dok_matrix: Dictionary of Keys format    6. coo_matrix: COOrdinate format (aka IJV, triplet format)    7. dia_matrix: DIAgonal formatTo construct a matrix efficiently, use either lil_matrix (recommended) ordok_matrix. The lil_matrix class supports basic slicing and fancyindexing with a similar syntax to NumPy arrays.  

Your example would be as simple as:

S = sp.csr_matrix(A)


Please refer to this answer: https://stackoverflow.com/a/65017153/9979257

In this answer, I have explained how to convert a 2-dimensional NumPy matrix into CSR or CSC format.