NumPy-Matrixbibliothek (Matrix)
NumPy enthält eine Matrixbibliotheknumpy.matlib, die Funktionen in diesem Modul geben eine Matrix zurück, kein ndarray-Objekt.
numpy.matlibEs wird speziell zum Erstellen und Bearbeiten von Matrixobjekten verwendet. Obwohl der Kern von NumPy mehrdimensionale Arrays (ndarray) unterstützt, bietet numpy.matlib einige praktische Funktionen, die speziell Matrixtypen zurückgeben, wodurch es für Benutzer einfacher wird, traditionelle lineare Algebra-Operationen durchzuführen.
AEine Matrix ist ein rechteckiges Array, angeordnet nach Zeilen
rows
und Spalten von Elementen.
Die Elemente in einer Matrix können Zahlen, Symbole oder mathematische Ausdrücke sein. Das Folgende ist eine 2-zeilige, 3-spaltige Matrix, die aus 6 numerischen Elementen besteht:
Transponierte Matrix
In NumPy können Sie neben der Verwendung der Funktion numpy.transpose zum Vertauschen der Dimensionen eines Arrays auch dasT-Attribut verwenden.
Zum Beispiel wird eine Matrix mit m Zeilen und n Spalten durch die Funktion t() in eine Matrix mit n Zeilen und m Spalten umgewandelt.

Beispiel
Das Ausgabeergebnis ist wie folgt:
原数组: [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] 转置数组: [[ 0 4 8] [ 1 5 9] [ 2 6 10] [ 3 7 11]]
matlib.empty()
Die Funktion matlib.empty() gibt eine neue Matrix zurück, mit dem Syntaxformat:
numpy.matlib.empty(shape, dtype, order)
Parameter description:
- shape: Ganzzahl oder Tupel von Ganzzahlen, das die Form der neuen Matrix definiert
- Dtype: Optional, Datentyp
- order: C (zeilenweise Reihenfolge) oder F (spaltenweise Reihenfolge)
Beispiel
Das Ausgabeergebnis ist:
[[-1.49166815e-154 -1.49166815e-154] [ 2.17371491e-313 2.52720790e-212]]
numpy.matlib.zeros()
Die Funktion numpy.matlib.zeros() erstellt eine Matrix, die mit Nullen gefüllt ist.
Beispiel
Das Ausgabeergebnis ist:
[[0. 0.] [0. 0.]]
numpy.matlib.ones()
Die Funktion numpy.matlib.ones() erstellt eine Matrix, die mit 1en gefüllt ist.
Beispiel
Das Ausgabeergebnis ist:
[[1. 1.] [1. 1.]]
numpy.matlib.eye()
Die Funktion numpy.matlib.eye() gibt eine Matrix zurück, bei der die Diagonalelemente gleich 1 und alle anderen Positionen gleich 0 sind.
numpy.matlib.eye(n, M,k, dtype)
Parameter description:
- n: Anzahl der Zeilen der zurückgegebenen Matrix
- M: Anzahl der Spalten der zurückgegebenen Matrix, Standard ist n
- k: Index der Diagonalen
- dtype: Datentyp
Beispiel
Das Ausgabeergebnis ist:
[[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.]]
numpy.matlib.identity()
Die Funktion numpy.matlib.identity() gibt eine Einheitsmatrix einer gegebenen Größe zurück.
Eine Einheitsmatrix ist eine quadratische Matrix. Die Elemente auf der Diagonalen von oben links nach unten rechts (Hauptdiagonale genannt) sind alle 1, und alle anderen Elemente sind 0.

Beispiel
Das Ausgabeergebnis ist:
[[ 1. 0. 0. 0. 0.] [ 0. 1. 0. 0. 0.] [ 0. 0. 1. 0. 0.] [ 0. 0. 0. 1. 0.] [ 0. 0. 0. 0. 1.]]
numpy.matlib.rand()
Die Funktion numpy.matlib.rand() erstellt eine Matrix gegebener Größe, wobei die Daten zufällig gefüllt werden.
Beispiel
Das Ausgabeergebnis ist:
[[0.23966718 0.16147628 0.14162 ] [0.28379085 0.59934741 0.62985825] [0.99527238 0.11137883 0.41105367]]
Matrizen sind immer zweidimensional, während ndarray ein n-dimensionales Array ist. Die beiden Objekte sind austauschbar.
Beispiel
Das Ausgabeergebnis ist:
[[1 2] [3 4]]
Beispiel
Das Ausgabeergebnis ist:
[[1 2] [3 4]]
Beispiel
Das Ausgabeergebnis ist:
[[1 2] [3 4]]
Die folgenden Funktionen existieren ebenfalls im NumPy-Namespace, geben aber Matrixobjekte zurück.
| Funktionsname | Parameterbeschreibung | Funktionsbeschreibung |
|---|---|---|
| matrix(data[, dtype, copy]) | data: array-ähnlich oder String, dtype: Datentyp, copy: ob kopiert werden soll | Erstellt ein Matrixobjekt aus einem Array oder String |
| asmatrix(data[, dtype]) | data: Eingabedaten, dtype: Datentyp (optional) | Wandelt die Eingabe in ein Matrixobjekt um |
| bmat(obj[, ldict, gdict]) | obj: String oder verschachtelte Sequenz, ldict, gdict: Namespace-Wörterbücher (optional) | Erstellt eine Matrix aus einem String, einer verschachtelten Sequenz oder einem Array |
| empty(shape[, dtype, order]) | shape: Form, dtype: Datentyp, order: Speicherreihenfolge | Erstellt eine Matrix mit nicht initialisierten Elementen |
| zeros(shape[, dtype, order]) | shape: Form, dtype: Datentyp, order: Speicherreihenfolge | Erstellt eine Nullmatrix |
| ones(shape[, dtype, order]) | shape: Form, dtype: Datentyp, order: Speicherreihenfolge | Erzeuge eine Matrix voller Einsen |
| eye(n[, M, k, dtype, order]) | n: Anzahl der Zeilen, M: Anzahl der Spalten, k: Diagonalversatz, dtype: Datentyp, order: Speicherreihenfolge | Erzeuge eine Matrix mit Einsen auf der Diagonalen und Nullen überall sonst |
| identity(n[, dtype]) | n: Größe, dtype: Datentyp (optional) | Erzeuge eine quadratische Einheitsmatrix |
| repmat(a, m, n) | a: Array oder Matrix, m, n: Anzahl der Wiederholungen | Wiederhole das Array oder die Matrix für m Zeilen und n Spalten |
| rand(args) | args: Geben Sie die Matrixform an | Erzeugen Sie eine gleichverteilte Zufallsmatrix der angegebenen Form |
| randn(args) | args: Geben Sie die Matrixform an | Erzeugen Sie eine standardnormalverteilte Zufallsmatrix der angegebenen Form |
Hinweise
- Obwohl
numpy.matlibist praktisch, die offizielle NumPy-Empfehlung ist die Verwendung vonndarrayund@Operator zum Durchführen von Matrixoperationen, weilmatrixder Typ hat einige Einschränkungen und könnte in zukünftigen Versionen veraltet sein. - Für neuen Code wird empfohlen, zu verwenden
ndarrayzuerst, um bessere Kompatibilität und Flexibilität zu gewährleisten.