Ich habe zwei Matrizen A
und P
. Ich möchte die diagonalen Elemente von A
durch die Elemente von ersetzen P
. Die gewünschte Ausgabe ist angehängt.
A=np.array([[0, 1, 1, 0],
[1, 0, 0, 1],
[1, 0, 0, 1],
[0, 1, 1, 0]])
P=np.array([[3, 4],
[5, 6]])
Gewünschte Ausgabe:
array([[3, 1, 1, 0],
[1, 4, 0, 1],
[1, 0, 5, 1],
[0, 1, 1, 6]])
Lösung des Problems
Verwenden Sie fill_diagonal
mit dem abgeflachten P als Werte für die Diagonale:
np.fill_diagonal(A, P.ravel())
NB. der Betrieb steht
Ausgang:
array([[3, 1, 1, 0],
[1, 4, 0, 1],
[1, 0, 5, 1],
[0, 1, 1, 6]])
Keine Kommentare:
Kommentar veröffentlichen