NumPy k-te diagonale Indizes

Ich würde gerne mit der k-ten Diagonale einer Zahl rechnen. Ich brauche diese Indizes. Zum Beispiel so etwas wie:

>>> a = numpy.eye(2)
>>> a[numpy.diag_indices(a, k=-1)] = 5
>>> a
array([[ 1.,  0.],
       [ 5.,  1.]])

Leider gibt diag_indices nur die Indizes zurück, die die Hauptdiagonale enthalten. Im Moment mache ich also Folgendes:

a += numpy.diag([5], -1)

Aber das scheint nicht so schön oder robust zu sein. :-)

Gibt es eine Möglichkeit, Indizes für andere als die Hauptdiagonale zu erhalten?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage