A matrix is a rectangular array in which a set of numbers are arranged in rows and columns. It is called an m X n matrix, where m and n are dimensions.
If a matrix contains fewer non-zero elements than zero elements, it is called a sparse matrix.
[0, 0, 3, 0, 0] [0, 1, 0, 0, 6] [1, 0, 0, 9, 0] [0, 0, 2, 0, 0]
The above matrix is a 4X5 matrix, and most of the numbers here are zero. Only a few elements are non-zero, so we can treat it as a sparse matrix.
To check if a given matrix is a sparse matrix, we need to compare the total number of elements and zeros. If the number of zero elements exceeds half of the elements in the matrix. Then we can call the given matrix as sparse matrix.
(m * n)/2
Let's discuss the different ways to determine whether a given matrix is sparse.
Using for loop, we can easily iterate array elements in python.
First, we will iterate over the matrix rows and count the number of zeros present in each row. The count value will then be stored in the counter variable.
After that, we compare the value in the counter variable with half the elements in the matrix to determine if the given matrix is a sparse matrix.
def isSparse(array, m, n): counter = 0 # Count number of zeros for i in range(0, m): for j in range(0, n): if (array[i][j] == 0): counter = counter + 1 return (counter > ((m * n) // 2)) arr = [[0, 0, 3], [0, 0, 0], [1, 8, 0]] print("The original matrix: ") for row in arr: print(row) print() # check if the given matrix is sparse matrix or not if (isSparse(arr, len(arr), len(arr[0]))): print("The given matrix is a sparse matrix") else: print("The given matrix is not a sparse matrix")
The original matrix: [0, 0, 3] [0, 0, 0] [1, 8, 0] The given matrix is a sparse matrix
The above matrix is a sparse matrix.
In this example, we will use the list.count() method to count the zero elements of each row in the loop and store the count in a counter variable.
def isSparse(array, m, n): counter = 0 # Count number of zeros for i in array: counter += i.count(0) return (counter > ((m * n) // 2)) arr = [[0, 0, 3], [0, 0, 0], [1, 8, 0]] print("The original matrix: ") for row in arr: print(row) print() # check if the given matrix is sparse matrix or not if (isSparse(arr, len(arr), len(arr[0]))): print("The given matrix is a sparse matrix") else: print("The given matrix is not a sparse matrix")
The original matrix: [0, 0, 3] [0, 0, 0] [1, 8, 0] The given matrix is a sparse matrix
By using the SciPy library in Python, we can create sparse matrices. In the following example, we use the csr_matrix() function to create a sparse matrix in compressed sparse row format.
issparse() function is used to check whether the given object is a sparse matrix.
Initially, we will create an array using nested lists and then convert it to a sparse matrix using the csr_matrix() method.
from scipy.sparse import issparse, csr_matrix arr = [[0, 0, 3], [0, 0, 0], [1, 8, 0]] matrix = csr_matrix(arr) print("The original matrix: ") print(matrix) print() # check if the given matrix is sparse matrix or not if (issparse(matrix)): print("The given matrix is a sparse matrix") else: print("The given matrix is not a sparse matrix")
The original matrix: (0, 2) 3 (2, 0) 1 (2, 1) 8 The given matrix is a sparse matrix
csr_matrix() method only stores data points (non-zero elements) in memory.
Note - The issparse() method has nothing to do with how many elements the input matrix has. Instead, it checks whether the given object is an instance of spmatrix.
The above is the detailed content of Python program to determine whether a given matrix is a sparse matrix. For more information, please follow other related articles on the PHP Chinese website!