Ich habe zwei Matrizen Aund P. Ich möchte die diagonalen Elemente von Adurch 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_diagonalmit 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