Я пытаюсь закодировать решение, которое принимает функцию, и устанавливает центральные диагональные значения (то есть вдоль A [0,0] , A [1,1], ...., A [N, N]) на основе суммирования значений в столбце ниже диагональной ячейки.Как использовать диагональные матрицы матрицы/массива эффективности на основе остальной части столбца (избегая цикла?)
Пример:
A = np.array([[0, 0, 0],
[3, 0, 0],
[4, 2, 0]])
B = function_to_be_built(A)
B = np.array([[7, 0, 0],
[3, 2, 0],
[4, 2, 0]])
, где можно увидеть, что добавление операторов для ячейки [0,0] = 3 + 4 = 7 и клетки [1,1], 2 = 2.
Конечно, это можно сделать относительно легко, используя петлю for
, но код предназначен для центрального ядра, поэтому эффективность имеет решающее значение. Я чувствую, что должен быть способ достичь этого эффективно с помощью numpy .... что-то вроде использования np.tril
, поэтому выберите только значения ниже диагонали?
Может ли кто-нибудь помочь мне добраться до решения, пожалуйста?
Спасибо.
ли указанные выше значения диагональ нулей «А»? – DyZ
@RafaelMartins 'np.diagonal (A)' is [0,0 ,,, 0]. – DyZ