目錄
使用 For 迴圈
範例
輸出
使用 SciPy 函式庫
首頁 後端開發 Python教學 Python程式判斷給定矩陣是否為稀疏矩陣

Python程式判斷給定矩陣是否為稀疏矩陣

Sep 05, 2023 pm 02:57 PM
- python - 稀疏矩陣 - 判斷

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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
Python中的自然語言處理實例:命名實體識別 Python中的自然語言處理實例:命名實體識別 Jun 09, 2023 pm 10:52 PM

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

Go語言如何判斷時間是昨天? Go語言如何判斷時間是昨天? Mar 25, 2024 am 09:15 AM

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

Python 2.x 中如何使用calendar模組進行日曆產生與處理 Python 2.x 中如何使用calendar模組進行日曆產生與處理 Jul 30, 2023 pm 07:54 PM

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

jQuery實作判斷元素內是否存在子元素的簡單方法 jQuery實作判斷元素內是否存在子元素的簡單方法 Feb 28, 2024 pm 03:21 PM

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

Python程式判斷給定矩陣是否為稀疏矩陣 Python程式判斷給定矩陣是否為稀疏矩陣 Sep 05, 2023 pm 02:57 PM

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

Python 2.x 中如何使用zipfile模組建立和解壓ZIP文件 Python 2.x 中如何使用zipfile模組建立和解壓ZIP文件 Aug 01, 2023 pm 02:46 PM

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

Python程式:在列表中交換第i個和第j個元素 Python程式:在列表中交換第i個和第j個元素 Sep 17, 2023 am 09:05 AM

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

C語言和Python:哪個更難學習? C語言和Python:哪個更難學習? Mar 22, 2024 am 09:48 AM

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

See all articles