矩陣是一個矩形數組,其中一組數字按行和列排列。它被稱為 m X n 矩陣,其中 m 和 n 是維度。
如果矩陣包含的非零元素數量少於零元素,則稱為稀疏矩陣。
[0, 0, 3, 0, 0] [0, 1, 0, 0, 6] [1, 0, 0, 9, 0] [0, 0, 2, 0, 0]
上面的矩陣是 4X5 矩陣,這裡大部分數字都是零。只有少數元素非零,因此我們可以將其視為稀疏矩陣。
要檢查給定矩陣是否為稀疏矩陣,我們需要比較元素和零的總數。如果零元素的個數超過矩陣中元素的一半。那我們可以將給定的矩陣稱為稀疏矩陣。
(m * n)/2
讓我們討論一下確定給定矩陣是否為稀疏矩陣的不同方法。
使用 for 循環,我們可以輕鬆地迭代 python 中的陣列元素。
首先,我們將迭代矩陣行並計算每行中存在的零的數量。然後計數值將儲存在計數器變數中。
之後,我們將計數器變數中的值與矩陣中的一半元素進行比較,以確定給定矩陣是否為稀疏矩陣。
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
上面的矩陣是一個稀疏矩陣。
在此範例中,我們將使用 list.count() 方法來計算循環中每行的零個元素,並將計數儲存在計數器變數中。
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
透過使用 Python 中的 SciPy 函式庫,我們可以建立稀疏矩陣。在下面的範例中,我們使用 csr_matrix() 函數以壓縮稀疏行格式建立稀疏矩陣。
issparse()函數用於檢查給定物件是否是稀疏矩陣。
最初,我們將使用嵌套列表建立一個數組,然後使用 csr_matrix() 方法將其轉換為稀疏矩陣。
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() 方法僅將資料點(非零元素)儲存在記憶體中。
注意 - issparse() 方法與輸入矩陣有多少元素無關。相反,它檢查給定物件是否是 spmatrix 的實例。
以上是Python程式判斷給定矩陣是否為稀疏矩陣的詳細內容。更多資訊請關注PHP中文網其他相關文章!