Python program to determine whether a given matrix is a sparse matrix

王林
Release: 2023-09-05 14:57:07
forward
1296 people have browsed it

Python program to determine whether a given matrix is ​​a sparse matrix

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 asparse matrix.

[0, 0, 3, 0, 0] [0, 1, 0, 0, 6] [1, 0, 0, 9, 0] [0, 0, 2, 0, 0]
Copy after login

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
Copy after login

Let's discuss the different ways to determine whether a given matrix is sparse.

Use For Loop

Using for loop, we can easily iterate array elements in python.

Example

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")
Copy after login

Output

The original matrix: [0, 0, 3] [0, 0, 0] [1, 8, 0] The given matrix is a sparse matrix
Copy after login
Copy after login

The above matrix is a sparse matrix.

Example

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")
Copy after login

Output

The original matrix: [0, 0, 3] [0, 0, 0] [1, 8, 0] The given matrix is a sparse matrix
Copy after login
Copy after login

Using the SciPy library

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.

Example

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")
Copy after login

Output

The original matrix: (0, 2) 3 (2, 0) 1 (2, 1) 8 The given matrix is a sparse matrix
Copy after login

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!

Related labels:
source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!