Ich habe ein 2-dimensionales numpy Array mit einer gleichen Anzahl von Spalten und Zeilen. Ich möchte sie in ein größeres Array mit den kleineren auf der Diagonale arrangieren. Es sollte möglich sein, anzugeben, wie oft die Startmatrix auf der Diagonalen liegen sollte. Zum Beispiel: Erstelle blockdiagonales numpy Array von einem gegebenen numpy Array
array([[5, 7, 0, 0],
[6, 3, 0, 0],
[0, 0, 5, 7],
[0, 0, 6, 3]])
für 3 mal
:array([[5, 7, 0, 0, 0, 0],
[6, 3, 0, 0, 0, 0],
[0, 0, 5, 7, 0, 0],
[0, 0, 6, 3, 0, 0],
[0, 0, 0, 0, 5, 7],
[0, 0, 0, 0, 6, 3]])
Gibt es einen schnellen Weg
a = numpy.array([[5, 7],
[6, 3]])
Also, wenn ich dieses Array 2 mal auf der Diagonalen der gewünschten Ausgabe wäre wollte um dies mit numpigen Methoden und für beliebige Größen des Startarrays zu implementieren (wobei das Startarray immer noch dieselbe Anzahl von Zeilen und Spalten hat)?
Wie würden Sie dies tun, wenn Sie x verschiedenen Matrizes in die Diagonale einfügen müssen? Ich habe 80 verschiedene Matrizen, die zu einer Blockdiagonalmatrix gemacht werden müssen. –
@ Will.Evo Alle 80 der gleichen Formen? – Divakar
Ja alle die gleiche Form –