How do you create a sparse matrix in python?

If most of the elements of the matrix have 0 value, then it is called a sparse matrix. The two major benefits of using sparse matrix instead of a simple matrix are:

  • Storage: There are lesser non-zero elements than zeros and thus lesser memory can be used to store only those elements.
  • Computing time: Computing time can be saved by logically designing a data structure traversing only non-zero elements.

Sparse matrices are generallyutilized in applied machine learning such as in data containing data-encodings that map categories to count and also in entire subfields of machine learning such as natural language processing (NLP).

Example:

0 0 3 0 4            
0 0 5 7 0
0 0 0 0 0
0 2 6 0 0

Representing a sparse matrix by a 2D array leads to wastage of lots of memory as zeroes in the matrix are of no use in most of the cases. So, instead of storing zeroes with non-zero elements, we only store non-zero elements. This means storing non-zero elements with triples- (Row, Column, value).

Create a Sparse Matrix in Python

Python’s SciPygives tools for creating sparse matrices using multiple data structures, as well as tools for converting a dense matrix to a sparse matrix. The function csr_matrix() is used to create a sparse matrix of compressed sparse row format whereas csc_matrix() is used to create a sparse matrix of compressed sparse column format.

# Usingcsr_matrix()

Syntax:

scipy.sparse.csr_matrix(shape=None, dtype=None)

Parameters:

shape: Get shape of a matrix

dtype: Data type of the matrix

Example 1:

Python

import numpy as np

from scipy.sparse import csr_matrix

sparseMatrix = csr_matrix((3, 4), 

                          dtype = np.int8).toarray()

print(sparseMatrix)

Output:

[[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]]

Example 2:

Python

import numpy as np

from scipy.sparse import csr_matrix

row = np.array([0, 0, 1, 1, 2, 1])

col = np.array([0, 1, 2, 0, 2, 2])

data = np.array([1, 4, 5, 8, 9, 6])

sparseMatrix = csr_matrix((data, (row, col)), 

                          shape = (3, 3)).toarray()

print(sparseMatrix)

Output:

[[ 1  4  0]
 [ 8  0 11]
 [ 0  0  9]]

# Usingcsc_matrix()

Syntax:

scipy.sparse.csc_matrix(shape=None, dtype=None)

Parameters:

shape: Get shape of a matrix

dtype: Data type of the matrix

Example 1:

Python

import numpy as np

from scipy.sparse import csc_matrix

sparseMatrix = csc_matrix((3, 4), 

                          dtype = np.int8).toarray()

print(sparseMatrix)

Output:

[[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]]

Example 2:

Python

import numpy as np

from scipy.sparse import csc_matrix

row = np.array([0, 0, 1, 1, 2, 1])

col = np.array([0, 1, 2, 0, 2, 2])

data = np.array([1, 4, 5, 8, 9, 6])

sparseMatrix = csc_matrix((data, (row, col)),

                          shape = (3, 3)).toarray()

print(sparseMatrix)

Output:

[[ 1  4  0]
 [ 8  0 11]
 [ 0  0  9]]

How do you make a sparse matrix in python?

Sparse Matrices in Python A dense matrix stored in a NumPy array can be converted into a sparse matrix using the CSR representation by calling the csr_matrix() function.

How do you make a sparse matrix?

Description. S = sparse( A ) converts a full matrix into sparse form by squeezing out any zero elements. If a matrix contains many zeros, converting the matrix to sparse storage saves memory. S = sparse( m,n ) generates an m -by- n all zero sparse matrix.

How do I save a sparse matrix in python?

Save a sparse matrix to a file using . npz format. Either the file name (string) or an open file (file-like object) where the data will be saved.

How do you plot sparse data in Python?

One way to visualize sparse matrix is to use 2d plot. Python's matplotlib has a special function called Spy for visualizing sparse matrix. Spy is very similar to matplotlib's imshow, which is great for plotting a matrix or an array as an image. imshow works with dense matrix, while Spy works with sparse matrix.

Tải thêm tài liệu liên quan đến bài viết How do you create a sparse matrix in python?