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 Zeilenrowsund 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

import numpy as np a = np.arange(12).reshape(3,4) print ('Ursprüngliches Array:') print (a) print ('\n') print ('Transponiertes Array:') print (a.T)

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

import numpy.matlib import numpy as np print (np.matlib.empty((2,2))) # Mit Zufallsdaten füllen

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

import numpy.matlib import numpy as np print (np.matlib.zeros((2,2)))

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

import numpy.matlib import numpy as np print (np.matlib.ones((2,2)))

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

import numpy.matlib import numpy as np print (np.matlib.eye(n = 3, M = 4, k = 0, dtype = float))

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

import numpy.matlib import numpy as np # Size ist 5, Typ ist Gleitkommazahl print (np.matlib.identity(5, dtype = float))

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

import numpy.matlib import numpy as np print (np.matlib.rand(3,3))

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

import numpy.matlib import numpy as np i = np.matrix('1,2;3,4') print (i)

Das Ausgabeergebnis ist:

[[1  2] 
 [3  4]]

Beispiel

import numpy.matlib import numpy as np j = np.asarray(i) print (j)

Das Ausgabeergebnis ist:

[[1  2] 
 [3  4]]

Beispiel

import numpy.matlib import numpy as np k = np.asmatrix (j) print (k)

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

  • Obwohlnumpy.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 verwendenndarrayzuerst, um bessere Kompatibilität und Flexibilität zu gewährleisten.
Andere Erweiterungen