Heim > Backend-Entwicklung > Python-Tutorial > Python-Programm zur Bestimmung, ob eine bestimmte Matrix eine dünn besetzte Matrix ist

Python-Programm zur Bestimmung, ob eine bestimmte Matrix eine dünn besetzte Matrix ist

王林
Freigeben: 2023-09-05 14:57:07
nach vorne
1462 Leute haben es durchsucht

Python-Programm zur Bestimmung, ob eine bestimmte Matrix eine dünn besetzte Matrix ist

Eine Matrix ist ein rechteckiges Array, in dem eine Reihe von Zahlen in Zeilen und Spalten angeordnet sind. Man nennt sie eine mXn-Matrix, wobei m und n Dimensionen sind.

Wenn eine Matrix weniger Nicht-Null-Elemente als Null-Elemente enthält, wird sie als sparse Matrix bezeichnet.

[0, 0, 3, 0, 0]
[0, 1, 0, 0, 6]
[1, 0, 0, 9, 0]
[0, 0, 2, 0, 0]
Nach dem Login kopieren

Die obige Matrix ist eine 4X5-Matrix, die meisten Zahlen hier sind Nullen. Da nur wenige Elemente ungleich Null sind, können wir sie als dünn besetzte Matrix behandeln.

Um zu überprüfen, ob eine bestimmte Matrix dünn besetzt ist, müssen wir die Gesamtzahl der Elemente und Nullen vergleichen. Wenn die Anzahl der Nullelemente die Hälfte der Elemente in der Matrix überschreitet. Dann können wir die gegebene Matrix als dünn besetzte Matrix bezeichnen.

(m * n)/2
Nach dem Login kopieren

Lassen Sie uns die verschiedenen Möglichkeiten besprechen, um festzustellen, ob eine bestimmte Matrix dünn besetzt ist.

For-Schleife verwenden

Mit der for-Schleife können wir Array-Elemente in Python einfach iterieren.

Beispiel

Zunächst durchlaufen wir die Matrixzeilen und zählen die Anzahl der in jeder Zeile vorhandenen Nullen. Der Zählwert wird dann in der Zählervariablen gespeichert.

Danach vergleichen wir den Wert in der Zählervariablen mit der Hälfte der Elemente in der Matrix, um festzustellen, ob die gegebene Matrix eine dünn besetzte Matrix ist.

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")
Nach dem Login kopieren

Ausgabe

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

The given matrix is a sparse matrix
Nach dem Login kopieren
Nach dem Login kopieren

Die obige Matrix ist eine spärliche Matrix.

Beispiel

In diesem Beispiel verwenden wir die Methode list.count(), um die Nullelemente jeder Zeile in der Schleife zu zählen und die Anzahl in der Zählervariablen zu speichern.

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")
Nach dem Login kopieren

Ausgabe

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

The given matrix is a sparse matrix
Nach dem Login kopieren
Nach dem Login kopieren

Verwendung der SciPy-Bibliothek

Durch die Verwendung der SciPy-Bibliothek in Python können wir dünn besetzte Matrizen erstellen. Im folgenden Beispiel verwenden wir die Funktion csr_matrix(), um eine Sparse-Matrix im komprimierten Sparse-Zeilenformat zu erstellen.

Mit der Funktion

issparse() wird überprüft, ob das angegebene Objekt eine dünnbesiedelte Matrix ist.

Beispiel

Zunächst erstellen wir ein Array mit verschachtelten Listen und konvertieren es dann mit der Methode csr_matrix() in eine Sparse-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")
Nach dem Login kopieren

Ausgabe

The original matrix: 
  (0, 2)	3
  (2, 0)	1
  (2, 1)	8

The given matrix is a sparse matrix
Nach dem Login kopieren
Die Methode

csr_matrix() speichert nur Datenpunkte (Elemente ungleich Null) im Speicher.

Hinweis – Die Methode issparse() hat nichts damit zu tun, wie viele Elemente die Eingabematrix hat. Stattdessen wird geprüft, ob das angegebene Objekt eine Instanz von spmatrix ist.

Das obige ist der detaillierte Inhalt vonPython-Programm zur Bestimmung, ob eine bestimmte Matrix eine dünn besetzte Matrix ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage