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

王林
王林nach vorne
2023-09-05 14:57:071461Durchsuche

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]

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

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

Ausgabe

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

The given matrix is a sparse matrix

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

Ausgabe

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

The given matrix is a sparse matrix

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

Ausgabe

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

The given matrix is a sparse matrix
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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Polytop in PythonNächster Artikel:Polytop in Python