Scipy- und Numpy -Bibliotheken werden üblicherweise zur Lösung linearer Algebra -Gleichungen und linearer Algebra -Systeme verwendet. Unabhängig davon, in welcher Programmiersprache Sie arbeiten, können Sie jederzeit Bibliotheken von Code nutzen, um lineare Algebra -Gleichungen zu lösen. Wenn es um die Python -Programmiersprache geht, haben Sie mehrere unglaubliche Bibliotheken, die Ihnen eine Vielzahl nützlicher Funktionen bieten, um mit linearen Algebra -Systemen zu spielen. Die Funktionen beider Bibliotheken (scipy und numpy) überlappen sich mit linearen Algebrafunktionen. Die Scipy -Bibliothek nutzt die Funktionen der Numpy -Bibliothek, um das lineare Algebra -System in Python -Programmen zu verwalten. In diesem Artikel werden die Scipy BLAS -Funktionen für lineare Algebra -Systeme untersucht.
Was sind Scipy Blas -Funktionen??
BLAS steht für grundlegende lineare Algebra -Subprogramme und ist eine Sammlung von Funktionen in der Python -Programmiersprache. Das BLAS bietet die grundlegende Plattform für moderne numerische Computerpakete wie Matlab, Numpy, Scipy usw. Es besteht aus mehreren Funktionen, mit denen grundlegende Berechnungen für Matrizen und Vektoren sowie einige komplexere Berechnungen für lineare Algebra -Systeme durchgeführt werden können. Wenn es jedoch um Leistung geht, konzentriert sich BLAS nicht auf eine optimale Leistung. Das Hauptziel ist es, eine einfache und lesbare Standardimplementierung zu haben. Daher ist die Optimierung von Blas aus der Einfachheit und numerischen Genauigkeit die Optimierung von BLAS. BLAS hat verschiedene Ebenenfunktionen, wie z. Jede Stufe hat mehrere Funktionen, um einfache und komplexe numerische Berechnungen auszuführen.
Was ist Scipy?.Linalg.Blas?
Die Skipie.Linalg.BLAS ist ein Scipy-Modul, das die Low-Level-BLAS-Funktionen aus der BLAS-Bibliothek liefert. Die in der scipy enthaltenen Funktionen.Linalg.BLAS-Module führen nur wenig bis gar keine Fehlerprüfung durch, weshalb sie als Funktionen auf niedriger Ebene bezeichnet werden. Es gibt zwei Fundfunktionen in der Skipei.Linalg.BLAS -Modul, ich.e., get_blas_funcs und find_best_blas_type. Lassen Sie uns jede Funktion mit Hilfe von Beispielen verstehen.
Beispiel 1:
Das erste Beispiel ist der Erforschung der Funktion get_blas_funcs aus dem SCIP gewidmet.Linalg.BLAS -Modul. Die Funktion get_blas_funcs hat die folgende Syntax:
Der Parameter „Name“ enthält den Namen der BLAS -Funktion in einer Zeichenfolge oder Reihenfolge von Zeichenfolgen ohne Präfix des Typs. Der Parameter „Array“ enthält die Abfolge mehrdimensionaler Arrays, um das optimale Präfix der BLAS -Routinen zu bestimmen. Der Parameter "DTYPE" definiert die Art der Daten, und schließlich bestimmt der Parameter "ILP" die ILP64 -Routinevariante. Die Parameter „Array“, „DTYPE“ und „ILP“ sind optional. Als Ergebnis gibt die GET_BLSA_FUNCS die Liste der gefundenen Funktionen zurück.
Numph als NP importieren
Skipie importieren.Linalg als la
r = np.willkürlich.default_rng ()
a = r.zufällig ((1, 2))
Labor = la.get_blas_funcs ('gemv', (a+1j,))
Druck (Labor.Typschlüssel)
Das Programm beginnt mit dem Import der Numpy -Bibliothek als NP und der Scipy -Bibliothek zusammen mit dem Linalg -Modul als LA in das Programm. Danach das Zufällige.default_rng () Funktion wird deklariert und der Variablen zugewiesen 'r.'Die Variable' R 'wird verwendet, um die zufällige Funktion aufzurufen, um ein Zufallszahlenarray von 1 Zeile und 2 Spalten zu generieren. Das generierte Array wurde an die get_blas_funcs übergeben, und schließlich wurden die Typecode -Methoden aufgerufen.
Die Namenskonvention in BLAS bezieht sich auf die Art des Präfixs für alle Funktionen, die durch die Art der Hauptmatrix bestimmt werden. Es gibt nur vier Namenskonventionen für alle Bla, und sie sind 'C, "D," S "und" Z "für die numpy Typen' Complex64," Float64 "," Float32 "und" Complex128 ". Der Datentyp wird im DTYPE -Attribut gespeichert und der Code wird im TypeCode -Attribut gespeichert. Also, wenn wir das Labor anrufen.TypeCode -Methode soll das Programm den Namen des Benennungskonvents gegen den angegebenen BLAS -Funktionsnamen zurückgeben. Lassen Sie uns das Ergebnis des Programmcodes sehen, der im folgenden Screenshot angegeben ist:
Beispiel 2:
Wenn wir die Arbeit von get_blas_funcs untersucht und verstanden haben. Mit der Funktion "FED_BEST_BLAS_TYPE" wird der beste passende BLAS -Typ erhalten und gleichzeitig die optimalen Präfixe der BLAS -Routinen festgelegt. Die Syntax der find_best_blas_type ist unten zu sehen:
Der Parameter „Array“ enthält die Abfolge der mehrdimensionalen Arrays. Es wird hauptsächlich verwendet, um das optimale Präfix für die BLAS -Routine zu erhalten. Der Parameter "DTYPE" wird verwendet, um den Datentyp in Form von String oder DTYPE zu definieren. Die Funktion gibt den abgeleiteten Numpy -Datentyp, das Präfixcharakter von BLAS und die Auftragsroutine zurück.
Numph als NP importieren
Skipie importieren.Linalg.bla als bla
rng = np.willkürlich.default_rng ()
a = rng.zufällig ((5, 5))
x = bla.find_best_blas_type ((a,))
Druck (x)
B = NP.Asfortranarray (a)
y = bla.find_best_blas_type ((b,))
Druck (y)
Auch hier begann das Programm mit dem Importieren der Numpy- und Scipy -Bibliotheken zusammen mit dem Linalg -Modul und dem BLAS -Submodul als NP bzw. BLA. Das zufällige.Die Funktion default_rng () wurde aufgerufen und verwendet, um ein 5 x 5 -Array von Zufallszahlen zu generieren. Das generierte Array wurde an die Funktion für Find-be-best_blas_type übergeben, um die am besten abgestimmte Art von BLAS zu finden. Das Ergebnis des Find_best_blas_Type wird in der Variablen „x“ gespeichert und mit der Funktion print () angezeigt.
Danach haben wir versucht, das Speicherlayout zu ändern, um zu überprüfen. Daher haben wir die Funktion asfortranArray () verwendet, um die Reihenfolge des Speicherlayouts zu ändern und das Ergebnis in einer Variablen 'B' zu speichern, die dann an die Funktion für find_best_blas_type übergeben wird, um den besten passenden BLAS -Typ zu finden. Die Ausgabe wird auf dem Bildschirm mit dem Befehl Print angezeigt. Es ist unten zu sehen.
Beachten Sie, dass die Funktion für find_best_blas_type zunächst für die Routine "Prefer_Fortran Order" false zurückgegeben hat, was bedeutet. Als wir jedoch die Reihenfolge der Speicherlayout mit der Funktion von AsfortranArray () geändert haben, gab die Funktion für find_best_blas_type true zurück. Dies ist verständlich, da wir die Speicherlayoutreihenfolge geändert haben.
Abschluss
Dieser Artikel war ein kurzer Überblick über Scipy Blas -Funktionen. Wir haben das BLAS -Modul mit Hilfe von Beispielen untersucht und erfuhren, dass das BLAS drei Funktionen hat, i, ich.e., Stufe 1, Stufe 2 und Stufe 3. Für all diese dreistufigen Funktionen haben wir zwei Hauptfindungsfunktionen. Wir haben über die Operation der einzelnen Fundfunktion gelernt, indem wir ein Beispiel verwenden.