Frage

HALLO,

Ich möchte eine symmetrische Matrix in Python initiieren und sie mit Nullen bevölkern.

Im Moment habe ich eine Reihe bekannter Dimensionen initiiert, dies ist jedoch für die anschließende Eingabe in R als Entfernungsmatrix nicht geeignet.

Gibt es in Numpy "einfache" Methoden, um eine symmetrische Matrix zu erstellen?

Danke: D.

Bearbeiten

Ich sollte klarstellen - die Erstellung der 'symmetrischen' Matrix ist in Ordnung. Ich bin jedoch daran interessiert, nur die untere dreieckige Form zu erzeugen, dh,.

ar = numpy.zeros((3, 3))

array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

Ich will:

array([[ 0],
       [ 0, 0 ],
       [ 0.,  0.,  0.]])

Ist das möglich?

War es hilfreich?

Lösung

Ich denke nicht, dass es machbar ist, mit solchen dreieckigen Arrays zu arbeiten.

Hier finden Sie zum Beispiel eine einfache Implementierung von (quadratischen) paarweise euklidischen Entfernungen:

def pdista(X):
    """Squared pairwise distances between all columns of X."""
    B= np.dot(X.T, X)
    q= np.diag(B)[:, None]
    return q+ q.T- 2* B

Für die Leistung ist es schwierig, es zu schlagen (in Python -Ebene). Was wäre der Hauptvorteil, diesen Ansatz nicht zu verwenden?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top