Извлечь положение np.diagonalPython

Программы на Python
Гость
Извлечь положение np.diagonal

Сообщение Гость »


У меня есть двумерный массив numpy, и я хотел бы извлечь диагональ с помощью np.diagonal. Точнее, не фактические значения, а позиции значений, которые принял бы np.diagonal.

Код: Выделить всё

size = 10
value = 1
offset = 1

array = np.random.randint(0, 10, size=(size, size))

diagonal = np.diag(np.full(size,value))+np.diag(np.full(size-1, value),offset)+np.diag(np.full(size-1, value), -offset)
diagonal = np.where(diagonal==0, np.nan, diagonal)
Это хорошо работает, если смещение равно 1. Если смещение не равно 1, то размер другой, что приводит к этой ошибке:

Код: Выделить всё

ValueError: operands could not be broadcast together with shapes (10,10) (11,11)
How can I solve this? The resulting array diagonal should have the same size as the array.


Источник: https://stackoverflow.com/questions/781 ... p-diagonal

Вернуться в «Python»