Numpy array for scipy.sparse matrix

For an arbitrary numpy ( ndarray ) array, is there a function or a short way to convert it to a scipy.sparse matrix?

I would like something that works:

 A = numpy.array([0,1,0],[0,0,0],[1,0,0]) S = to_sparse(A, type="csr_matrix") 
+4
source share
3 answers

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> 
+3
source

A very useful and suitable example is help!

 import scipy.sparse as sp help(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 is also worth noting that various constructors (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 format To construct a matrix efficiently, use either lil_matrix (recommended) or dok_matrix. The lil_matrix class supports basic slicing and fancy indexing with a similar syntax to NumPy arrays. 

Your example will be as simple as:

 S = sp.csr_matrix(A) 
+1
source

Is it possible to build coo and csr matrices with numpy WITHOUT using scipy ???

0
source

Source: https://habr.com/ru/post/1413532/


All Articles