In diesem Artikel zeigen wir Ihnen, was eine Sparse-Matrix ist und wie Sie eine Sparse-Matrix in Python erstellen.
Eine dünn besetzte Matrix ist eine Matrix, in der die meisten Elemente0sind. Das heißt, die Matrix enthält Daten nur für wenige Standorte. Der größte Teil des von einer dünn besetzten Matrix belegten Speichers besteht aus Nullen.
Zum Beispiel -
M = [ [1, 0, 0, 0], [0, 0, 3, 0], [0, 0, 0, 0], [0, 0, 0, 2] ]
Die Verwendung eines 2D-Arrays zur Darstellung einer dünn besetzten Matrix verschwendet viel Speicher, da die Nullen in der Matrix in den meisten Fällen nutzlos sind. Anstatt also Null zusammen mit Nicht-Null-Elementen zu speichern, speichern wir nur Nicht-Null-Elemente. Dabei werden Tripel verwendet, um Nicht-Null-Elemente (Zeile, Spalte, Wert) zu speichern.
Natural Language Processing (NLP) und Datenkodierung nutzen beide stark besetzte Matrizen. Wenn die meisten Matrixelemente 0 sind, sind die Speicherkosten für die Speicherung aller Matrixelemente hoch.
Das liegt daran, dass wir nur wenige Datenpunkte haben und der größte Teil des Speicherplatzes durch redundante Nullen belegt ist.
Hier sind die beiden Hauptvorteile der Verwendung von spärlichen Matrizen anstelle einfacher Matrizen –
Speicher– Da es weniger Nicht-Null-Elemente als Null gibt, kann weniger Speicher verwendet werden, um diese Elemente einzeln zu speichern.
Rechenzeit– Rechenzeit kann gespart werden, indem logisch eine Datenstruktur erstellt wird, die nur Elemente ungleich Null durchläuft.
ScPy in Python bietet Tools zum Erstellen dünn besetzter Matrizen unter Verwendung verschiedener Datenstrukturen und zum Konvertieren dichter Matrizen in dünn besetzte Matrizen.
In Python können wir mit der folgenden Funktion eine dünn besetzte Matrix erstellen -
csr_matrix()-Funktion– Erstellt eine dünn besetzte Matrix im komprimiertensparse row-Format,
csc_matrix()-Funktion– Erstellt eine Sparse-Matrix im komprimiertenSparse Column-Format. ,,
Es werden dünn besetzte Matrizen im komprimierten, dünn besetztenZeilen-Format erstellt.
scipy.sparse.csr_matrix(shape=None, dtype=None)
Form– es ist die Form der Matrix
dtype– Es ist der Datentyp der Matrix
Hier sind die Algorithmen/Schritte, die befolgt werden müssen, um die erforderliche Aufgabe auszuführen -
Verwenden Sie das Schlüsselwort import, um dasnumpy-Modul mit einem Alias (np) zu importieren.
Verwenden Sie das Schlüsselwort import, um die Funktion csr_matrix aus dem Scipy-Modul zu importieren.
Verwenden Sie die Funktioncsr_matrix(), um eine 3 * 3-Sparse-Matrix vom Datentyp int (row-Format) zu erstellen und mit der Funktiontoarray()in ein Array zu konvertieren.
Drucken Sie die generierte Sparse-Matrix.
Das folgende Programm verwendet die Funktion csr_matrix(), um eine dünn besetzte Matrix (3x3) zurückzugeben -
# importing numpy module with an alias name import numpy as np # importing csr_matrix function from scipy module from scipy.sparse import csr_matrix # Using csr_matrix function to create a 3 * 3 sparse matrix of int datatype # and converting into array sparse_matrix = csr_matrix((3, 3), dtype = np.int8).toarray() # printing the resultant sparse matrix print("The resultant sparse matrix:\n", sparse_matrix)
Bei der Ausführung generiert das obige Programm die folgende Ausgabe:
The resultant sparse matrix: [[0 0 0] [0 0 0] [0 0 0]]
Hier sind die Algorithmen/Schritte, die befolgt werden müssen, um die erforderliche Aufgabe auszuführen -
Verwenden Sie das Schlüsselwort import, um dasnumpy-Modul mit einem Alias (np) zu importieren.
Verwenden Sie das Schlüsselwort import, um die Funktioncsr_matrixaus dem Scipy-Modul zu importieren.
Verwenden Sie die Funktionnumpy.array(), um ein Array zu erstellen (gibt ein Ndarray zurück. Ein Ndarray ist ein Array-Objekt, das die angegebenen Anforderungen erfüllt)
# importing numpy module with alias name import numpy as np # importing csr_matrix function from scipy module from scipy.sparse import csr_matrix # Giving rows and columns values rows = np.array([0, 1, 0, 2, 1, 1]) columns = np.array([1, 0, 0, 2, 1, 2]) # Giving array data arrayData = np.array([1, 3, 2, 5, 7, 6]) # Using csr_matrix function to create a 3x3 sparse matrix sparse_matrix = csr_matrix((arrayData, (rows, columns)), shape = (3, 3)).toarray() # print the resultant sparse matrix print("The resultant sparse matrix:\n", sparse_matrix)
Bei der Ausführung generiert das obige Programm die folgende Ausgabe:
The resultant sparse matrix: [[2 1 0] [3 7 6] [0 0 5]]
Es werden spärliche Matrizen im komprimierten Sparse-Spaltenformat erstellt.
scipy.sparse.csc_matrix(shape=None, dtype=None)
Form– es ist die Form der Matrix
dtype– Es ist der Datentyp der Matrix
Hier sind die Algorithmen/Schritte, die befolgt werden müssen, um die erforderliche Aufgabe auszuführen -
Verwenden Sie das Schlüsselwort import, um dasnumpy-Modul mit einem Alias (np) zu importieren.
Verwenden Sie das Schlüsselwort import, um die Funktioncsc_matrixaus dem Scipy-Modul zu importieren.
Erstellen Sie mit der Funktioncsc_matrix()eine 3*3-Sparse-Matrix vom Datentyp int (columnformat) und konvertieren Sie sie mit der Funktiontoarray()in ein Array.
Drucken Sie die generierte Sparse-Matrix.
Das folgende Programm gibt mit der Funktion csc_matrix() eine dünn besetzte Matrix (3x3) im Spaltenformat zurück -
# importing numpy module with an alias name import numpy as np # importing csc_matrix function from scipy module from scipy.sparse import csc_matrix # Using csc_matrix function to create a 3 * 3 sparse matrix of int datatype # and converting into array sparse_matrix = csc_matrix((3, 3), dtype = np.int8).toarray() # printing the resultant sparse matrix print("The resultant sparse matrix:\n", sparse_matrix)
Bei der Ausführung generiert das obige Programm die folgende Ausgabe:
The resultant sparse matrix: [[0 0 0] [0 0 0] [0 0 0]]
Das folgende Programm verwendet die Funktion csc_matrix(), um eine dünn besetzte Matrix (3x3) im Ganzzahlspaltenformat zurückzugeben -
import numpy as np # importing csc_matrix function from scipy module from scipy.sparse import csc_matrix # Giving rows and columns values rows = np.array([0, 1, 0, 2, 1, 1]) columns = np.array([1, 0, 0, 2, 1, 2]) # Giving array data arrayData = np.array([1, 3, 2, 5, 7, 6]) # Using csc_matrix function to create a 3x3 sparse matrix in column format sparse_matrix = csc_matrix((arrayData, (rows, columns)), shape = (3, 3)).toarray() # print the resultant sparse matrix print("The resultant sparse matrix:\n", sparse_matrix)
Bei der Ausführung generiert das obige Programm die folgende Ausgabe:
The resultant sparse matrix: [[2 1 0] [3 7 6] [0 0 5]]
In diesem Tutorial haben wir vier verschiedene Möglichkeiten kennengelernt, spärliche Matrizen in Python zu generieren. Wir haben auch gelernt, wie man aus einem Numpy-Array eine dünn besetzte Matrix generiert.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Sparse-Matrix in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!