Heim  >  Artikel  >  Backend-Entwicklung  >  Wie invertiere ich eine Matrix oder ein nArray in Python?

Wie invertiere ich eine Matrix oder ein nArray in Python?

WBOY
WBOYnach vorne
2023-09-09 11:29:021517Durchsuche

Wie invertiere ich eine Matrix oder ein nArray in Python?

In diesem Artikel zeigen wir Ihnen, wie Sie die Umkehrung einer Matrix oder eines ndArrays mithilfe der NumPy-Bibliothek in Python berechnen.

Was ist die Umkehrung einer Matrix?

Die Umkehrung einer Matrix ist so, dass sie, wenn sie mit der Originalmatrix multipliziert wird, die Identitätsmatrix ergibt.

Die Umkehrung einer Matrix ist einfach der Kehrwert einer Matrix, genau wie in der regulären Arithmetik, für eine einzelne Zahl, die zum Lösen einer Gleichung verwendet wird, um den Wert einer unbekannten Variablen zu erhalten. Die Umkehrung einer Matrix ist die Matrix, die bei Multiplikation mit der Originalmatrix die Identitätsmatrix ergibt.

Die Umkehrung einer Matrix existiert nur, wenn die Matrix nicht singulär ist, das heißt, die Determinante ist nicht 0. Wir können einfach die Umkehrung einer quadratischen Matrix mithilfe der Determinante und der adjungierten Matrix mithilfe der folgenden Formel ermitteln

if det(A) != 0
 A-1 = adj(A)/det(A)
else
 "Inverse does not exist"

Methode 1 – Verwenden Sie die Funktion numpy.linalg.inv() für den Typ np.array()

numpy.linalg.inv()-Funktion

Python bietet eine sehr einfache Möglichkeit, die Umkehrung einer Matrix zu berechnen. Um die Umkehrung einer Matrix zu berechnen, verwenden Sie die Funktion numpy.linalg.inv() aus dem NumPy-Modul in Python, um die Matrix zu umgehen.

Grammatik

numpy.linalg.inv(array)

Parameter

Array – Es handelt sich um eine Matrix, die invertiert werden muss.

Rückgabewert – Die Funktion numpy.linalg.inv() gibt die inverse Matrix der Matrix zurück.

Algorithmus (Schritte)

Hier sind die Algorithmen/Schritte, die befolgt werden müssen, um die erforderliche Aufgabe auszuführen -

  • Verwenden Sie das Schlüsselwort import, um das numpy-Modul mit einem Alias ​​(np) zu importieren.

  • Verwenden Sie die Funktion numpy.array() (die ein ndarray zurückgibt. Ein ndarray ist ein Array-Objekt, das die angegebenen Anforderungen erfüllt), um ein numpy-Array zu erstellen, indem Sie ein dreidimensionales Array-Array (3 Zeilen, 3 Spalten) als sein übergeben Argument.

  • Verwenden Sie die Funktion linalg.inv() des Numpy-Moduls (berechnen Sie die Umkehrung einer Matrix), um die Umkehrung einer Eingabe-3x3-Matrix zu berechnen, indem Sie die Eingabematrix als Argument übergeben und die Umkehrmatrix drucken.

Beispiel

Das folgende Programm verwendet die Funktion numpy.linalg.inv(), um die Umkehrung der eingegebenen dreidimensionalen (3x3)-Matrix zurückzugeben -

# importing numpy module with an alias name
import numpy as np

# creating a 3-Dimensional(3x3) numpy matrix
inputArray_3d = np.array([[4, 5, 1],
   [3, 4, 12],
   [10, 2, 1]])

# printing the input 3D matrix
print("The input numpy 3D matrix:")
print(inputArray_3d)

# calculating the inverse of an input 3D matrix
resultInverse= np.linalg.inv(inputArray_3d)

# printing the resultant inverse of an input matrix
print("The Inverse of 3-Dimensional(3x3) numpy matrix:")
print(resultInverse)

Ausgabe

Bei der Ausführung generiert das obige Programm die folgende Ausgabe:

The input numpy 3D matrix:
[[ 4  5  1]
 [ 3  4 12]
 [10  2  1]]
The Inverse of 3-Dimensional(3x3) numpy matrix:
[[-0.04246285 -0.00636943  0.11889597]
 [ 0.24840764 -0.01273885 -0.0955414 ]
 [-0.07218684  0.08917197  0.00212314]]

Methode 2 – Verwendung der Funktion scipy.linalg.inv()

scipy.linalg.inv()

Mit der Funktionalität des Scipy-Moduls können wir verschiedene wissenschaftliche Berechnungen durchführen. Es funktioniert auch mit Numpy-Arrays.

In Python kann scipy.linalg.inv() auch die inverse Matrix einer gegebenen quadratischen Matrix zurückgeben. Es funktioniert genauso wie die Funktion numpy.linalg.inv().

Algorithmus (Schritte)

Hier sind die Algorithmen/Schritte, die befolgt werden müssen, um die erforderliche Aufgabe auszuführen -

  • Verwenden Sie das Schlüsselwort import, um Linalg aus dem scipy-Modul zu importieren.

  • Verwenden Sie die Funktion numpy.matrix() (die eine Matrix aus einer Datenzeichenfolge oder einem Array-ähnlichen Objekt zurückgibt. Die resultierende Matrix ist ein spezialisiertes 2D-Array), um eine Numpy-Matrix zu erstellen, indem Sie das 2D-Array konvertieren (2 Zeilen, 2 Spalten) werden ihm als Parameter übergeben.

  • Verwenden Sie die Funktion linalg.inv() des Scipy-Moduls (berechnen Sie die Umkehrung einer Matrix), um die Umkehrung einer 2x2-Eingabematrix zu berechnen, indem Sie die Eingabematrix als Argument übergeben und die Umkehrmatrix drucken.

    Beispiel

    import numpy as np
    # importing linalg from scipy module
    from scipy import linalg
    
    # creating a 2-Dimensional(2x2) NumPy matrix
    inputMatrix = np.matrix([[5, 2],[7, 3]])
    
    # printing the input 2D matrix
    print("The input numpy 2D matrix:")
    print(inputMatrix)
    
    # calculating the inverse of an input 2D matrix
    resultInverse = linalg.inv(inputMatrix)
    
    # printing the resultant inverse of an input matrix
    print("The Inverse of 2-Dimensional(2x2) numpy matrix:")
    print(resultInverse)
    

    Ausgabe

    The input numpy 2D matrix:
    [[5 2]
    [7 3]]
    The Inverse of 2-Dimensional(2x2) numpy matrix:
    [[ 3. -2.]
    [-7. 5.]]
    

    Methode 3 – Verwenden Sie die Funktion numpy.linalg.inv() für den Typ np.matrix()

    Algorithmus (Schritte)

    Hier sind die Algorithmen/Schritte, die befolgt werden müssen, um die erforderliche Aufgabe auszuführen -

    • Verwenden Sie die Funktion numpy.matrix() (die eine Matrix aus einer Datenzeichenfolge oder einem Array-ähnlichen Objekt zurückgibt. Die resultierende Matrix ist ein spezialisiertes 4D-Array), um durch Konvertieren eines 4-dimensionalen Arrays eine Numpy-Matrix zu erstellen (4 Zeilen, 4 Spalten) werden ihm als Parameter übergeben.

      Beispiel

      import numpy as np
      
      # creating a NumPy matrix (4x4 matrix) using matrix() method
      inputMatrix = np.matrix('[11, 1, 8, 2; 11, 3, 9 ,1; 1, 2, 3, 4; 9, 8, 7, 6]')
      
      # printing the input 4D matrix
      print("The input NumPy matrix:")
      print(inputMatrix)
      
      # calculating the inverse of an input matrix
      resultInverse= np.linalg.inv(inputMatrix)
      
      # printing the resultant inverse of an input matrix
      print("The Inverse of 4-Dimensional(4x4) numpy matrix:")
      print(resultInverse)
      

      Ausgabe

      The input NumPy matrix:
      [[11 1 8 2]
      [11 3 9 1]
      [ 1 2 3 4]
      [ 9 8 7 6]]
      The Inverse of 4-Dimensional(4x4) numpy matrix:
      [[ 0.25   -0.23214286   -0.24107143   0.11607143]
      [-0.25     0.16071429   -0.09464286   0.11964286]
      [-0.25     0.375         0.3125      -0.1875    ]
      [ 0.25    -0.30357143    0.12321429   0.05178571]]
      

      Fazit

      In diesem Artikel haben wir anhand von drei verschiedenen Beispielen gelernt, wie man die Umkehrung einer Matrix berechnet. Wir haben gelernt, wie man Matrizen in Numpy mit zwei verschiedenen Methoden erhält: numpy.array() und NumPy.matrix().

      Das obige ist der detaillierte Inhalt vonWie invertiere ich eine Matrix oder ein nArray in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

      Stellungnahme:
      Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen