Python程式判斷給定矩陣是否為稀疏矩陣
矩陣是一個矩形數組,其中一組數字按行和列排列。它被稱為 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 迴圈
使用 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
使用 SciPy 函式庫
透過使用 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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python是一門功能強大的程式語言,其生態系統中有許多自然語言處理(NLP)相關的函式庫和工具。命名實體辨識(NamedEntityRecognition,簡稱NER)是NLP中很重要的一個任務,它能夠辨識文本中的命名實體,如人名、地名、組織機構名等。在本文中,我們將介紹如何使用Python中的NER函式庫進行命名實體辨識的實例。安裝NER庫我們將使用Pyt

Go語言是一種開發效率高、效能優異的程式語言,提供了豐富的標準函式庫,能夠輕鬆處理時間和日期。在實際開發中,常常會遇到需要判斷一個時間是不是昨天的需求。本文將介紹如何使用Go語言中的時間處理庫來判斷一個給定時間是否是昨天,並給出具體的程式碼範例。在Go語言中,時間處理相關的函數和方法位於time套件下。 Go語言中的時間類型是time.Time,是一個結構體,包含年

Python2.x中如何使用calendar模組進行日曆產生和處理在Python中,提供了一個很方便的模組來產生和處理日曆,那就是calendar模組。無論是在學習程式設計、處理時間相關問題,或是實際應用中需要產生特定日期的日曆,calendar模組都非常實用。本文將介紹如何在Python2.x中使用calendar模組進行日曆產生和處理,並附上程式碼範例。

jQuery是一個廣泛使用的JavaScript函式庫,它提供了許多方便的方法來操作HTML元素。在開發網頁的過程中,常常會遇到需要判斷一個元素內是否存在子元素的情況。在本文中,我們將介紹如何使用jQuery實作這個功能,並提供具體的程式碼範例。要判斷一個元素內是否存在子元素,我們可以使用jQuery的children()方法。 children()方法用於取得匹配

矩陣是一個矩形數組,其中一組數字按行和列排列。它被稱為mXn矩陣,其中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讓我們討論一下確定給定矩陣是否為

Python2.x中如何使用zipfile模組建立和解壓ZIP檔案簡介:ZIP檔案是一種常用的歸檔檔案格式,常用於壓縮和打包檔案和資料夾。 Python提供了zipfile模組來建立和解壓ZIP文件,本文將介紹如何在Python2.x中使用zipfile模組進行ZIP檔案的建立和解壓。安裝:Python2.x預設情況下已經

在Python中,列出了允許我們儲存和操作項目集合的通用資料結構。在某些情況下,我們可能需要在清單中互換或交換元素的位置。在這篇文章中,我們將探索如何編寫Python程式來交換它們

C語言和Python:哪個更難學習?近年來,程式語言的學習逐漸成為了一種趨勢。在眾多程式語言中,C語言和Python可以說是最受關注的兩種語言之一。 C語言是一種底層語言,直接操作內存,執行效率高;Python則是一種高階語言,程式碼簡潔易讀。那麼,C語言和Python究竟哪個比較難學習呢? C語言是一種結構化語言,語法規則嚴謹,需要程式設計師自行管理內存,在編寫程式時
