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 alssparse Matrixbezeichnet.
[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.
Mit der for-Schleife können wir Array-Elemente in Python einfach iterieren.
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")
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.
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")
The original matrix: [0, 0, 3] [0, 0, 0] [1, 8, 0] The given matrix is a sparse matrix
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 Funktionissparse() wird überprüft, ob das angegebene Objekt eine dünnbesiedelte Matrix ist.
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")
The original matrix: (0, 2) 3 (2, 0) 1 (2, 1) 8 The given matrix is a sparse matrix
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!