Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Methode zum Erstellen einer symmetrischen Matrix basierend auf dem Numpy-Modul

Python-Methode zum Erstellen einer symmetrischen Matrix basierend auf dem Numpy-Modul

黄舟
黄舟Original
2017-10-12 10:55:515260Durchsuche

In diesem Artikel wird hauptsächlich die Methode zum Erstellen symmetrischer Matrizen in Python vorgestellt und die zugehörigen Operationsfähigkeiten von Python anhand des Numpy-Moduls zur Implementierung von Matrixoperationen in Form von Beispielen analysiert

Die Beispiele in diesem Artikel beschreiben Python-Methoden zum Erstellen symmetrischer Matrizen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Symmetrische (echte Symmetrie-)Matrix ist:

Schritt 1: Erstellen Sie eine quadratische Matrix


>>> import numpy as np
>>> X = np.random.rand(5**2).reshape(5, 5)
>>> X
array([[ 0.26984148, 0.25408384, 0.12428487, 0.0194565 , 0.91287708],
  [ 0.31837673, 0.35493156, 0.74336268, 0.31810561, 0.04409245],
  [ 0.06644445, 0.8967897 , 0.10990936, 0.05036292, 0.72581982],
  [ 0.94758512, 0.21375975, 0.36781736, 0.1633904 , 0.36070709],
  [ 0.53263787, 0.18380491, 0.0225521 , 0.91239367, 0.75521585]])

Schritt 2: Behalten Sie den oberen dreieckigen Teil bei


>>> X = np.triu(X)
# 保留其上三角部分
>>> X
array([[ 0.26984148, 0.25408384, 0.12428487, 0.0194565 , 0.91287708],
  [ 0.  , 0.35493156, 0.74336268, 0.31810561, 0.04409245],
  [ 0.  , 0.  , 0.10990936, 0.05036292, 0.72581982],
  [ 0.  , 0.  , 0.  , 0.1633904 , 0.36070709],
  [ 0.  , 0.  , 0.  , 0.  , 0.75521585]])

Schritt 3: „Kopieren“ Sie das obere Dreieck in das untere Dreieck


>>> X += X.T - np.diag(X.diagonal())
>>> X
array([[ 0.26984148, 0.25408384, 0.12428487, 0.0194565 , 0.91287708],
  [ 0.25408384, 0.35493156, 0.74336268, 0.31810561, 0.04409245],
  [ 0.12428487, 0.74336268, 0.10990936, 0.05036292, 0.72581982],
  [ 0.0194565 , 0.31810561, 0.05036292, 0.1633904 , 0.36070709],
  [ 0.91287708, 0.04409245, 0.72581982, 0.36070709, 0.75521585]])

Beachten Sie, dass die Elemente auf der Diagonale einmal subtrahiert werden müssen. Weil das obere Dreieck cov und das untere Dreieck cov.T beim Hinzufügen die Elemente auf der Hauptdiagonale zweimal hinzufügen.

Schritt 4: Testen


>>> X.T == X
array([[ True, True, True, True, True],
  [ True, True, True, True, True],
  [ True, True, True, True, True],
  [ True, True, True, True, True],
  [ True, True, True, True, True]], dtype=bool)

Das obige ist der detaillierte Inhalt vonPython-Methode zum Erstellen einer symmetrischen Matrix basierend auf dem Numpy-Modul. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn