Home >Backend Development >Python Tutorial >Python program to determine whether a given matrix is ​​a sparse matrix

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

王林
王林forward
2023-09-05 14:57:071460browse

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

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")

Output

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.

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")

Output

The original matrix: 
[0, 0, 3]
[0, 0, 0]
[1, 8, 0]

The given matrix is a sparse matrix

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")

Output

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!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete
Previous article:Polytope in PythonNext article:Polytope in Python